【发布时间】:2014-08-10 04:10:23
【问题描述】:
(免责声明:我是 LINQ 的新手,我确实做了功课,但我所有的研究都提出了直接处理字符串的示例。我的代码处理 ObservableCollection 的对象,其中每个对象都包含一个字符串。 )
我有以下代码:
public class Word
{
public string _word { get; set; }
// Other properties.
}
ObservableCollection<Word> items = new ObservableCollection<Word>();
items.Add(new Word() { _word = "Alfa" });
items.Add(new Word() { _word = "Bravo" });
items.Add(new Word() { _word = "Charlie" });
我正在尝试查找其中包含“r”的单词:
IEnumerable<Word> subset = from ii in items select ii;
subset = subset.Where(p => p._word.Contains("r"));
上述工作(我得到“Bravo”和“Charlie”)。
我的问题:我根据我在网上/书中找到的零碎示例设计了上述 LINQ 查询。
- 它是如何做到的?
- 有没有更好/更直接的方法?
谢谢。
【问题讨论】:
-
您正在混合查询和方法语法。顺便说一句,你为什么要一个类
Word和一个属性-word呢?另外,请关注.NET Naming Conventions。 -
@TimSchmelter 该类包含其他属性,正如我在评论中显示的那样 - 我没有在这里详细说明它们。另外,您能否扩展您的评论:查询/方法语法?哪个是哪个?
-
查询语法:
var query = from item in collection方法语法:var query = collection.Select(item => item)。这里有一个关于利弊的问题:stackoverflow.com/questions/214500/… -
@TimSchmelter 谢谢。
标签: c# linq-to-objects