C# 如何在C中的任何列表中的所有元素前面追加字符串

C# 如何在C中的任何列表中的所有元素前面追加字符串,c#,.net,string,C#,.net,String,有没有办法在列表[file1.json,file2.json]的所有元素前面插入前缀字符串/directory/ 我要查找的结果是[/directory/file1.json,/directory/file2.json]。您可以使用linq扩展方法:选择 这将执行列表中每个项目的Path.Combinedirectory和filename。我使用这个方法,因为这是连接目录/文件名的最好方法,因为它应该是独立于平台的。您可以使用扩展方法。有两种调用Select的方法: 方法语法 var origi

有没有办法在列表[file1.json,file2.json]的所有元素前面插入前缀字符串/directory/


我要查找的结果是[/directory/file1.json,/directory/file2.json]。

您可以使用linq扩展方法:选择


这将执行列表中每个项目的Path.Combinedirectory和filename。我使用这个方法,因为这是连接目录/文件名的最好方法,因为它应该是独立于平台的。

您可以使用扩展方法。有两种调用Select的方法:

方法语法

var originalList = new List<string> { "file1.json", "file2.json" };
var list = originalList.Select(e => "/directory/" + e);
查询语法

var originalList = new List<string> { "file1.json", "file2.json" };
var list = from e in originalList select "/directory/" + e;

两者都是相同的。

您可以像以下一样使用,这将根据您的要求为您提供一个列表:

string stringToappend=@"/Directory/";
List<string> JsonList= new List<string> (){"file1.JSON","file2.JSON"};
var AppendedLis=JsonList.Select(x=> Path.Combine(stringToappend, x)).ToList();
注意:-LINQ扩展方法。选择“帮助您执行此操作”,它将在内部迭代集合中的每个元素,并在每个项目中附加所需字符串,并根据您的要求提供列表。请尝试以下操作:

List<string> yourlist = new List<string> { "file1.JSON", "file2.JSON" };
var directory = "/directory/";
yourlist = yourlist.Select(f => string.Concat(directory,f)).ToList();
使用Select的所有答案实际上都在创建一个新列表,如果您真的想更改现有列表中的值,那么只需使用for循环即可


实际上,您的代码段不是独立于平台的。在Windows上,它生成的内容既不是路径也不是url。这是Select方法的一个示例。然后使用简单的字符串连接而不是path.Combine。在我看来,产生无意义结果的例子并没有那么有用:请随意改进答案,这样我们都可以以正确的方式学习。
List<string> yourlist = new List<string> { "file1.JSON", "file2.JSON" };
var directory = "/directory/";
yourlist = yourlist.Select(f => string.Concat(directory,f)).ToList();
for(int i = 0; i < fileList.Count; i++)
    fileList[i] = @"/directory/" + fileList[i];