在LINQ中找出带子字符串的单词

时间:2015-04-12 05:56:30

标签: c# linq

我有一系列的单词

 string[] words = { "believe", "relief", "receipt", "field" };

如何使用linq

找出带有子串“ei”的单词
IEnumerable<string> iswordlist = from word in words where words.All(a => a.Contains("ei"))
                                             select word;
            foreach (var i in iswordlist)
            {
                txtlinq.Text = txtlinq.Text + i.ToString();
            }

我尝试了以上但没有结果。任何人都可以帮我吗?

3 个答案:

答案 0 :(得分:3)

试试这个

var newWord = words.Where(o => o.Contains("ei"));

答案 1 :(得分:1)

您当前的代码甚至无法编译,因为您正在使用Enumarbale.All方法返回true或false(当给定条件匹配时)而不是可以查询的IEnumerable。您只需要一个Where子句。

试试这个: -

var result = words.Where(x => x.Contains("ei"));

或者如果您更喜欢查询语法: -

IEnumerable<string> result = from word in words
             where word.Contains("ei")
             select word;

Working Fiddle

答案 2 :(得分:1)

我对自由形式不太满意,但使用点语法可以使用:

var ieWords = words.Where(a => a.Contains("ei"));