如何在C#中的任何List <string>中的所有元素前面附加一个字符串

时间:2016-06-13 12:50:26

标签: c# .net string

有什么方法可以在列表"/directory/"中的所有元素前插入前缀字符串["file1.json", "file2.json"]吗?

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

5 个答案:

答案 0 :(得分:8)

您可以使用linq扩展方法:List<string> myList = new List<string> { "file1.JSON", "file2.JSON" }; var directory = "/directory"; myList = myList.Select(filename => Path.Combine(directory, filename)).ToList();

Path.Combine(directory, filename)

这将执行列表中的monthScrollView.smoothScrollBy((int) buttons.get(arrayNumber).getX(),0); foreach项。我正在使用Path.Combine方法,因为这是连接目录/文件名的最佳方法,因为它应该是独立于平台的。

答案 1 :(得分:2)

试试这个:

List<string> yourlist = new List<string> { "file1.JSON", "file2.JSON" };
var directory = "/directory/";
yourlist = yourlist.Select(f => string.Concat(directory,f)).ToList();

答案 2 :(得分:2)

如果您确实想要更改现有列表中的值,那么使用Select的所有答案实际上都会创建一个新列表,然后只使用for循环

for(int i = 0; i < fileList.Count; i++)
    fileList[i] = @"/directory/" + fileList[i];

答案 3 :(得分:0)

您可以使用扩展方法Enumerable.Select。有两种方法可以调用Select

  1. 方法语法

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

    var originalList = new List<string> { "file1.json", "file2.json" };
    var list = from e in originalList select "/directory/" + e;
    
  3. 两者都是一样的。

答案 4 :(得分:0)

您可以使用以下内容,根据您的要求为您提供一个列表:

string stringToappend=@"/Directory/";
List<string> JsonList= new List<string> (){"file1.JSON","file2.JSON"};
var AppendedLis=JsonList.Select(x=> Path.Combine(stringToappend, x)).ToList();

注意: - LINQ扩展方法.Select可以帮助您执行此操作,该操作将在内部迭代集合中的每个元素,并为每个项目附加所需的字符串并为您提供根据您的要求列出