代码之家  ›  专栏  ›  技术社区  ›  AndrewC

从字符串数组中提取*可能*存在的项

  •  1
  • AndrewC  · 技术社区  · 14 年前

    我有一个字符串数组,它可能包含一个字符串中包含文本“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语句包装每一行。

    如果问题不清楚,请道歉。

    2 回复  |  直到 10 年前
        1
  •  9
  •   Daniel A. White    14 年前
    string mytextdata = mystringarray.SingleOrDefault<string>(t => t.Contains("mytext"));
    

    这个会回来的 null 如果找不到任何内容,否则将返回 string 所以你不需要 ToString() . http://msdn.microsoft.com/en-us/library/bb342451.aspx

        2
  •  1
  •   tanascius    14 年前

    也许你可以用 FirstOrDefault() 方法。我刚刚意识到 SingleOrDefault() 也是。