匹配特定字符,提取第一个单词LINQ列表

时间:2015-03-24 16:53:52

标签: c# linq

晚安

我希望有人可以帮助我,我已经到处寻找可能的解决方案,但我找不到任何东西,我在Csharp中有一个LINQ列表,现在我一直试图实现的是这个。在匹配第一次出现" a"提取包含a的第一个单词。这是我的代码

        List<string> strings = new List<string>()
        {
            "John", "Jane", "Sarah", "Pete", "Anna"
        };

        string strValue = Program.GetSingleStringValue(strings);
        Console.WriteLine("Single String: " + strValue);

我是csharp和Linq的新手,所以如果有人可以帮助我,我会非常感激。

先谢谢

3 个答案:

答案 0 :(得分:1)

您可以将First方法与谓词一起使用,它将返回满足条件的第一个元素,或者如果没有这样的元素则抛出异常。您可以使用Contains检查字符串是否包含a

string strValue = strings.First(s => s.Contains('a'));

答案 1 :(得分:0)

这样做:

var result = strings.Where(x=> x.Contains('a')).FirstOrDefault();

或直接使用FirstOrDefault()

var result = strings.FirstOrDefault(x=>x.Contains('a'));

它将为您提供包含字母 a 的元素。

答案 2 :(得分:-1)

试试这个: -

我认为您需要以a开头的单词: -

string wordWitha = strings.FirstOrDefault(x => x.StartsWith("a",
                                            StringComparison.OrdinalIgnoreCase));

如果您想要包含a的任何单词,请: -

string wordWitha = strings.FirstOrDefault(x => x.Contains('a'));