LINQ 从列表中选择多个元素<object[]>

我有一个列表,其中填充了数据库中的数据。对象数组在填充时有 10 个元素,我想做一个 LINQ Select 语句,它返回List<object[]>只有 2 个元素的 a。我如何选择这些元素 1 和 2。

我已经尝试了以下适用于元素 0 的方法,但是如何获取元素 0 和元素 1 ?

var resultDistinct  = result.Select(p => p.GetValue(0)).Distinct();
var resultDistinct2 = result.Select(p => p.ElementAt(0)).Distinct();


慕斯709654
浏览 118回答 4
4回答

喵喔喔

您可以为此使用匿名对象..var items = result.Select(p => new { ValueA = p.GetValue(0), ValueB = p.GetValue(1) });然后访问每个项目foreach(var item in items){&nbsp; &nbsp; var valueA = item.ValueA;&nbsp; &nbsp; var valueB = item.ValueB;}

蝴蝶不菲

您可以使用Take扩展方法:items.Take(x);这将返回x集合的第一个项目。如果你想跳过某些元素,可以使用Skip(x)before 调用Take。这两种方法经常用于分页。

弑天下

private class Foo{    public int Item1;    public int Item2;    public int Item3;}static void Main(string[] args){    List<Foo> foos = new List<Foo>                            {                                new Foo() { Item1 = 1, Item2 = 2, Item3 = 3 },                               new Foo() { Item1 = 4, Item2 = 5, Item3 = 6 },                               new Foo() { Item1 = 7, Item2 = 8, Item3 = 9 }                           };    // Create a list of lists where each list has three elements corresponding to     // the values stored in Item1, Item2, and Item3.  Then use SelectMany    // to flatten the list of lists.    var items = foos.Select(f => new List<int>() { f.Item1, f.Item2, f.Item3 }).SelectMany(item => item).Distinct();    foreach (int item in items)        Console.WriteLine(item.ToString());    Console.ReadLine();}

慕雪6442864

如果你想要不同然后2,那么,result.Select(p&nbsp;=>&nbsp;p).Distinct().Take(2);如果只有2的话,result.Take(2);
打开App,查看更多内容
随时随地看视频慕课网APP