鑑於這種LINQ表達式:使用除,而不是保持與LINQ表達輸入其中
items.Select(i => i.ToLowerInvariant()).Except(keywords)
是否有表達,你保留了輸入的外殼的一種方式,而無需使用WHERE()?
在哪裏做法:
items.Where(i => !keywords.Contains(i.ToLowerInvariant()))
我喜歡的除了方法讀取的方式,但我不想改變輸出。
任何想法?
鑑於這種LINQ表達式:使用除,而不是保持與LINQ表達輸入其中
items.Select(i => i.ToLowerInvariant()).Except(keywords)
是否有表達,你保留了輸入的外殼的一種方式,而無需使用WHERE()?
在哪裏做法:
items.Where(i => !keywords.Contains(i.ToLowerInvariant()))
我喜歡的除了方法讀取的方式,但我不想改變輸出。
任何想法?
可以使用overload of Except
that takes an IEqualityComparer<T>
。在這種情況下,你並不需要推出自己的比較器:內置StringComparer.InvariantCultureIgnoreCase
類做你需要的東西:
items.Except(keywords, StringComparer.InvariantCultureIgnoreCase);
有這需要一個的IEqualityComparer過載,除了() - 你可以在內置的字符串comparers的使用:
items.Except(keywords, StringComparer.InvariantCultureIgnoreCase);
您可以使用內置的StringComparer.InvariantCultureIgnoreCase。 – 2009-10-05 14:16:32
好點...我正在更新我的示例。 – LBushkin 2009-10-05 14:20:42