有什么方法可以在列表"/directory/"
中的所有元素前插入前缀字符串["file1.json", "file2.json"]
吗?
我要找的结果是["/directory/file1.json", "/directory/file2.json"]
。
答案 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
:
方法语法
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;
两者都是一样的。
答案 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
可以帮助您执行此操作,该操作将在内部迭代集合中的每个元素,并为每个项目附加所需的字符串并为您提供根据您的要求列出