我有一个文件数组,但问题是根路径没有附加到文件,所以使用下面的数据,我将如何将 linq 项目附加到静态字符串?
string rootPath = "C:\\Users\\MyUserName";
List<string> files = new List<string>();
files.Add("\\My Documents\\File1.txt");
files.Add("\\My Documents\\File2.txt");
我本质上想要一个 Path.Combine(rootPath, x); 列表。我试过这个,但没有运气:
var fileList = (from x in files
select Path.Combine(rootPath, x)).ToList();
但它不附加 rootPath,fileList 与文件列表相同。
有任何想法吗?
最佳答案
显然 Path.Combine
将忽略第一个参数,如果第二个参数有一个前导“\
”(这个 blog entry 有更多信息)。
这应该有效,它使用 Path.Combine
和 ?
operator 来解释第二个参数中的前导斜杠:
var fileList = (from f in files
select Path.Combine(rootPath,
f.StartsWith("\\") ? f.Substring(1) : f)).ToList();
关于c# - LINQ - 为每个结果添加静态文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4093498/