如果IEnumerable <string>只返回一个字符串,该怎么办?

Was*_*RAR 3 c# xml linq ienumerable visual-studio-2010

我正在对XML文件进行简单的Linq查询

IEnumerable<string> value = from item in myFile.Descendants("ProductName")
                            select (string)item;
Run Code Online (Sandbox Code Playgroud)

通常(如果我有多行)我可以使用foreach循环迭代:

foreach (string str in value)
{
    Console.WriteLine(str);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我确定我只有一个项目,那么我的方法签名是:

public string getValue()
{
    return ?;
}
Run Code Online (Sandbox Code Playgroud)

我应该怎么回(如果我想删除的foreach循环)?

slo*_*oth 5

如果您确定总有一个字符串,则可以返回value.Single().

更多选择:

这取决于是否要在有多个元素(使用SingleSingleOrDefault)或根本没有元素(使用FirstSingle)时引发异常.

如果你总是只有一个元素,我会坚持使用Single(),因为如果有零个或多个元素,它会抛出异常.