【发布时间】:2014-02-20 09:01:57
【问题描述】:
我想从字符串数组中删除元音,我用 foreach 循环做到了,但现在 想要使用 LINQ 或 Lambda 表达式来执行它
我试过以下代码 LINQ
string[] strArray = new string[] { "cello", "guitar", "violin"};
string[] vowels = new string[] { "a", "e", "i", "o", "u" };
var vNovowels = from vitem in strArray
from vowel in vowels
where vitem.Contains(vowel)
select vitem.Replace(vowel, "");
foreach (var item in vNovowels)
{
Console.WriteLine(item);
}
但我没有得到预期的结果。
我通过上述查询得到的输出是:-
cllo
cell
guitr
gutar
gitar
voln
vilin
期望的输出:
cll
gtr
vln
【问题讨论】:
-
这不是 lambda 表达式,而是 LINQ 查询。
-
@OndrejJanacek 这是一个查询。他不是试图修改现有集合,而是根据源集合中的值创建一个新集合。如果那不行,那么像
select这样的投影操作就没有意义了。