1

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

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

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

4

4 回答 4

5

试试这个。

IList<SampleClass> samples = GetIList();
SampleClass onesample = samples.FirstOrDefault(p => p.Propy == "A");
于 2013-09-05T19:39:04.433 回答
1

您不需要 select 或 where ...您可以在 FirstOrDefault 上应用 lambda express

 IList<SampleClass> samples = GetIList();
 var onesample = samples.FirstOrDefault(p => p.Propy == "A");
于 2013-09-05T19:30:41.893 回答
0

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

投射IListIEnumerable<T>

private void Combobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            string item = ((IEnumerable<object>)e.AddedItems).FirstOrDefault() as string;
            Console.WriteLine($"Combo item is: '{item}'");
        }
于 2021-07-30T14:16:42.253 回答
-1
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

于 2013-09-05T19:29:03.430 回答