C# linq 如何获取嵌套动态列表的所有第一个元素?
C# linq how to get all the first elements of a nested dynamic list?
我有一个二维嵌套列表 List<list<dynamic>>
,我想获取每个二级列表的第一个元素并形成一个新的 List<dynamic>
。
我知道 .first()
获取列表的第一个元素,但如何将它应用于多个子列表?
提前致谢。
如果你想取每个列表的前两个元素,请试试这个,你想要的元素越多,你可以增加 .Take() 中的整数。
List<List<string>> originalList = new List<List<string>>()
{
new List<string>(){"1","1","1"},
new List<string>(){"2","2"},
};
var FirtTwoElementsList = originalList.Select(x => x.Take(2)).ToList();
List<string> FinalList = new List<string>();
foreach (var item in FirtTwoElementsList)
{
FinalList.AddRange(item.ToList<string>());
}
正确有效的方法如下:
mainList.Select(subList => subList?.First()).OfType<dynamic>();
这将处理 null
个列表和 null
个元素
如果你想select子列表的所有元素尝试以下
mainlist.Select(subList => subList).OfType<List<dynamic>>();
这只会处理 null
个列表
IEnumerable s = listOfLists.Where(列表 => lists.Any())
.Select(数组=> array.First());
解释:
首先使用lists => lists.Any()
获取有记录的数组列表
然后 select 每个列表中的第一项和 return。
我有一个二维嵌套列表 List<list<dynamic>>
,我想获取每个二级列表的第一个元素并形成一个新的 List<dynamic>
。
我知道 .first()
获取列表的第一个元素,但如何将它应用于多个子列表?
提前致谢。
如果你想取每个列表的前两个元素,请试试这个,你想要的元素越多,你可以增加 .Take() 中的整数。
List<List<string>> originalList = new List<List<string>>()
{
new List<string>(){"1","1","1"},
new List<string>(){"2","2"},
};
var FirtTwoElementsList = originalList.Select(x => x.Take(2)).ToList();
List<string> FinalList = new List<string>();
foreach (var item in FirtTwoElementsList)
{
FinalList.AddRange(item.ToList<string>());
}
正确有效的方法如下:
mainList.Select(subList => subList?.First()).OfType<dynamic>();
这将处理 null
个列表和 null
个元素
如果你想select子列表的所有元素尝试以下
mainlist.Select(subList => subList).OfType<List<dynamic>>();
这只会处理 null
个列表
IEnumerable s = listOfLists.Where(列表 => lists.Any()) .Select(数组=> array.First());
解释:
首先使用lists => lists.Any()
获取有记录的数组列表然后 select 每个列表中的第一项和 return。