You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何为动态获取的文件名数组添加前缀生成新数组?

解决方案:生成带前缀的文件名数组并输出到README

问题分析

你当前代码里的newarr被初始化为仅含空字符串的固定长度数组,无法容纳多个元素。需要先匹配原数组长度,或用更灵活的集合类处理,再完成格式拼接与文件生成。

方案1:使用数组直接填充

先创建和原数组长度一致的新数组,通过循环逐个拼接格式字符串:

string[] dependencies = listbox1.Items.OfType<string>().ToArray();
// 初始化与原数组长度匹配的新数组
string[] newarr = new string[dependencies.Length];

for (int i = 0; i < dependencies.Length; i++)
{
    // 按"AppN = 文件名"格式拼接,N从1开始计数
    newarr[i] = $"App{i + 1} = {dependencies[i]}";
}

方案2:用LINQ简化代码(推荐)

利用LINQ的Select方法,同时获取元素和索引,一行完成数组转换:

string[] dependencies = listbox1.Items.OfType<string>().ToArray();
// 直接通过LINQ生成目标数组
string[] newarr = dependencies.Select((fileName, index) => $"App{index + 1} = {fileName}").ToArray();

生成README文件

完成数组转换后,使用File.WriteAllLines将内容写入README文件:

// 将数组内容写入当前目录下的README.txt,可自行修改路径
File.WriteAllLines("README.txt", newarr);

补充:从OpenFileDialog获取文件名的完整流程

如果还需要实现从OpenFileDialog选择文件的逻辑,补充如下代码:

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Multiselect = true; // 允许一次性选择多个文件
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
    // 获取选中的所有文件名
    string[] dependencies = openFileDialog.FileNames;
    // 生成带前缀的数组
    string[] newarr = dependencies.Select((fileName, index) => $"App{index + 1} = {fileName}").ToArray();
    // 写入README文件
    File.WriteAllLines("README.txt", newarr);
}

内容的提问来源于stack exchange,提问作者Ines B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 11:55:11