请求linq来操作数组的数组

本文关键字:数组 操作数 操作 linq 请求 | 更新日期: 2023-09-27 18:18:48

我有一个包含以下元素的数组

{Mark=90, Students={"Tom","Marry","Jack"}},
{Mark=50, Students={"Niko","Gary","David"}},
{Mark=70, Students={"John","Andy","Amy"}}

我想用Linq语句把它们转换成

{Mark=90, name="Tom"},
{Mark=90, name="Marry"},
{Mark=90, name="Jack"},
{Mark=50, name="Niko"},
{Mark=50, name="Gary"},
{Mark=50, name="David"},
{Mark=70, name="John"},
{Mark=70, name="Andy"},
{Mark=70, name="Amy"}

我该怎么办?

请求linq来操作数组的数组

你可以投射到一个匿名类(或者一个真正的类,如果你需要当前方法之外的序列):

var results = from x in myArray
              from s in x.Students
              select new { x.Mark, name = s };

使用SelectMany:

data.SelectMany(
    item => Students.Select(
        student => new {Mark = item.Mark, name=student.Name}
    )
);