使用LINQ查询IList

时间:2013-09-05 19:26:02

标签: c# linq

foreach是获取对象属性值的唯一选项吗? (如果我将其存储在var类型中)

IList<SampleClass> samples = GetIList();
var onesample = samples.Select(p => p.Propy == "A").FirstOrDefault();

我是否需要遍历'onesample'以使用foreach或更好的方式获取值?

4 个答案:

答案 0 :(得分:4)

试试吧。

IList<SampleClass> samples = GetIList();
SampleClass onesample = samples.FirstOrDefault(p => p.Propy == "A");

答案 1 :(得分:1)

你不需要选择或在哪里...你可以在FirstOrDefault上应用lambda express

 IList<SampleClass> samples = GetIList();
 var onesample = samples.FirstOrDefault(p => p.Propy == "A");

答案 2 :(得分:0)

IList<SampleClass> samples = GetIList();
var onesample = samples.Select(p => p.Propy == "A").FirstOrDefault();

应该是..

IList<SampleClass> samples = GetIList();
var onesample = samples.Where(p => p.Propy == "A").FirstOrDefault();

这将为您提供SampleClass

的一个实例

答案 3 :(得分:0)

我知道 OP 的问题完全没有帮助,但万一有人发现自己在这里(就像我一样)因为他想将 LINQ 与 IList 一起使用(一个很好的例子是尝试在 WPF Combobox 的 SelectionChanged 处理程序中获取选定的项目) ,这是我的解决方案:

IList 转换为 IEnumerable<T>

private void Combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            string item = ((IEnumerable<object>)e.AddedItems).FirstOrDefault() as string;
            Console.WriteLine($"Combo item is: '{item}'");
        }