【发布时间】:2010-11-22 02:31:56
【问题描述】:
Path.combine 只能组合两个字符串,有没有快速组合三个和四个字符串的方法?
【问题讨论】:
Path.combine 只能组合两个字符串,有没有快速组合三个和四个字符串的方法?
【问题讨论】:
升级到 .Net 4.0,添加了overloads you're looking for。
如果您卡在 .Net 3.5 中,可以多次调用 Path.Combine。
如果你有IEnumerable<string>,你可以写
string path = strings.Aggregate(Path.Combine);
【讨论】:
foldl 在函数式编程中被左折叠。与 C# 中的 Enumerable.Aggregate 相同。您还会看到foldr,它与Enumerable.Reverse().Aggregate 相同。该符号来自 Haskell。
我不是 C# 程序员,但类似
string s = Path.Combine("str1", Path.Combine("str2", Path.Combine("str3", "str4")));
看起来很明显。
【讨论】:
如果您可以升级到 .NET 4.0,那么它就会满足您的需求。
否则:
public string Combine(IEnumerable<string> strings) {
return strings.Aggregate((x, y) => Path.Combine(x, y));
}
和
public string Combine(params string[] strings) {
return Combine((IEnumerable<string>)strings);
}
【讨论】: