我有一个字符串数组,它可能包含一个在字符串中带有文本“mytext”的元素。例如:
mystringarray
{
[0] => "hello world";
[1] => "some of mytext";
}
我还有一个没有mytext文本的数组。
mystringarray
{
[0] => "hello world";
[1] => "some of notmy";
}
我的问题是我何时使用:
string mytextdata = mystringarray.Single<string>(t => t.Contains("mytext")).ToString();
我得到第二个数组的异常,因为它找不到与表达式匹配的元素。
有没有一种快速的方法可以编辑这一行,如果没有找到任何内容就不会抛出异常,而只是忽略?我有很多这些行,我不想在if语句中包含每一行。
如果问题不明确,请道歉。
答案 0 :(得分:9)
string mytextdata = mystringarray.SingleOrDefault<string>(t => t.Contains("mytext"));
如果找不到任何内容,则会返回null
,否则会返回string
,因此您不需要ToString()
。 http://msdn.microsoft.com/en-us/library/bb342451.aspx
答案 1 :(得分:1)
也许您可以使用FirstOrDefault()
方法。好吧 - 我刚才意识到还有一个SingleOrDefault()
。