C# 使用LINQ按实体分组

C# 使用LINQ按实体分组,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我有这样的实体 class Test { string Name; IList<SubTest> subTest; } class SubTest { string Id; string value; } new SelectListItem(){Group=Test.Name, Value=SubTest.Id, Text= subTest.Value} 如何使用linq获得此结果?使用Select()和Sele

我有这样的实体

class Test
    {
        string Name;
        IList<SubTest> subTest;
    }

class SubTest
{
    string Id;
    string value;
}
new SelectListItem(){Group=Test.Name, Value=SubTest.Id, Text= subTest.Value}
如何使用linq获得此结果?

使用
Select()
SelectMany()
将数据转换为
SelectListItem

System.Collections.Generic.IEnumerable<Test> lResultFromServer = ...;

var lSelectListItems = lResultFromServer.SelectMany(s =>
  s.subTest.Select(st => new System.Web.Mvc.SelectListItem {
    Group = new System.Web.Mvc.SelectListGroup {Name = s.Name},
    Value = st.Id,
    Text = st.value
  })
);
System.Collections.Generic.IEnumerable lResultFromServer=。。。;
var lSelectListItems=lResultFromServer.SelectMany(s=>
s、 subTest.Select(st=>newsystem.Web.Mvc.SelectListItem{
Group=new System.Web.Mvc.SelectListGroup{Name=s.Name},
值=标准Id,
Text=st.value
})
);
使用
Select()
SelectMany()
将数据转换为
SelectListItem

System.Collections.Generic.IEnumerable<Test> lResultFromServer = ...;

var lSelectListItems = lResultFromServer.SelectMany(s =>
  s.subTest.Select(st => new System.Web.Mvc.SelectListItem {
    Group = new System.Web.Mvc.SelectListGroup {Name = s.Name},
    Value = st.Id,
    Text = st.value
  })
);
System.Collections.Generic.IEnumerable lResultFromServer=。。。;
var lSelectListItems=lResultFromServer.SelectMany(s=>
s、 subTest.Select(st=>newsystem.Web.Mvc.SelectListItem{
Group=new System.Web.Mvc.SelectListGroup{Name=s.Name},
值=标准Id,
Text=st.value
})
);

Test和SubTest类的属性也必须设置为public,以便访问它们。如果在javascript中获取相同的对象,如何获得相同的结果?@PSR javascript?您想做什么?尝试获取具有GroupName、Id和值的数组/列表,以便我可以使用组功能将它们绑定到下拉列表。@PSR但Javascript是客户端,您的问题是针对LINQ,它是C#,它是服务器端。但是,您可以使用简单的for-each循环从
lSelectListItems
输出javascript数组。测试和子测试类的属性也必须设置为public,以便可以访问它们。如果在javascript中获取相同的对象,我如何获得相同的结果?@PSR javascript?您想做什么?尝试获取具有GroupName、Id和值的数组/列表,以便我可以使用组功能将它们绑定到下拉列表。@PSR但Javascript是客户端,您的问题是针对LINQ,它是C#,它是服务器端。但是,您可以通过使用简单的for-each循环从
lSelectListItems
输出javascript数组。