我可以用LINQ做到这一点吗?

时间:2010-10-13 10:46:34

标签: c# linq .net-4.0

我可以使用LINQ执行其中任何一项:

1。检查IEnumerable<string>中的每个元素是否都有正确的扩展名。如果没有,抛出异常。

foreach(var filepath in filepaths)
    if(Path.GetExtension(filepath) != @".xml")
        throw new ArgumentException(...);

<小时/> 2。IEnumerable<string>并将其所有元素序列化为一个string,每个元素之间都有空格。

string args = "";
foreach (var filepath in filepaths)
    args += filepath + " ";

由于

2 个答案:

答案 0 :(得分:8)

if (!filepaths.All(x => Path.GetExtension(x) == @".xml"))
{
  throw error;
}

string.Join(" ", filepaths.ToArray())第二个问题。

答案 1 :(得分:5)

1

if(filePaths.Any(filepath => Path.GetExtension(filepath) != @".xml"))
     throw new ArgumentException(...);

2

string args = string.Join(" ", filePaths.ToArray());

或者,使用LINQ(效率低得多):

string args = filePaths.Aggregate("", (combined, path) => combined + " " + path);