LINQ 帮助,对对象中的项目集进行分组
这是我的 2 个类,
public class Item
{
public string Path { get; set; }
public List<Sub> Subs { get; set; }
}
public class Sub
{
public string Name { get; set; }
}
private void Test()
{
Sub sub1 = new Sub() { Name = "SUB1" };
Sub sub2 = new Sub() { Name = "SUB2" };
Sub sub3 = new Sub() { Name = "SUB3" };
Item item1 = new Item() { Path = "/Path1" };
Item item2 = new Item() { Path = "/Path2" };
Item item3 = new Item() { Path = "/Path3" };
item1.Subs.Add(sub1);
item1.Subs.Add(sub2);
item2.Subs.Add(sub1);
item2.Subs.Add(sub3);
item3.Subs.Add(sub1);
item3.Subs.Add(sub2);
item3.Subs.Add(sub3);
List<Item> items = new List<Item>();
items.Add(item1);
items.Add(item2);
items.Add(item3);
}
我想要一个类似于
sub1 -> 的分组集合。项目1、项目2、项目3
子2 ->项目1、项目3
子3 -> item2, item3
我怎样才能做到这一点?
非常感谢!
Here's my 2 classes
public class Item
{
public string Path { get; set; }
public List<Sub> Subs { get; set; }
}
public class Sub
{
public string Name { get; set; }
}
private void Test()
{
Sub sub1 = new Sub() { Name = "SUB1" };
Sub sub2 = new Sub() { Name = "SUB2" };
Sub sub3 = new Sub() { Name = "SUB3" };
Item item1 = new Item() { Path = "/Path1" };
Item item2 = new Item() { Path = "/Path2" };
Item item3 = new Item() { Path = "/Path3" };
item1.Subs.Add(sub1);
item1.Subs.Add(sub2);
item2.Subs.Add(sub1);
item2.Subs.Add(sub3);
item3.Subs.Add(sub1);
item3.Subs.Add(sub2);
item3.Subs.Add(sub3);
List<Item> items = new List<Item>();
items.Add(item1);
items.Add(item2);
items.Add(item3);
}
I want a grouped collection that looks something like this
sub1 -> item1, item2, item3
sub2 -> item1, item3
sub3 -> item2, item3
How can I accomplish this?
Thanks much!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我假设 item1、item2、item3 是名称为
items
的新List
的一部分I'm assuming item1, item2, item3 are part of a new
List<Item>
whose name isitems
v4.0 是这样的吗?
我不知道这是否会在 3.5 中工作
Something like this i v4.0?
I dont know if that'll work in 3.5 though
这是一种方法:
This is one way: