我的朋友正在讨论LINQ中嵌套的对象列表,当我问这是什么意思时,他们笑了:(
这里的任何人都可以告诉嵌套列表是什么。是否像列表中的列表一样?感谢所有帮助我的人
这是NestedList吗?
public class X
{
public Y[] y { get; set; }
}
public class Y
{
int id { get; set; }
}
答案 0 :(得分:4)
是的,它听起来像列表中的列表,例如:
List<List<int>>
虽然嘲笑你并不好 - 它可能表明你的代码更好地组织成逻辑类。通常应避免使用此类构造 - 您可能不希望公开或使用类型过于复杂的接口,但通常在本地使用此类列表,特别是在使用LINQ时。
这可能有用的一个简单示例是:
string[] directories = Directory.GetDirectories("c:\\");
var files = directories.Select(Directory.GetFiles).ToList();
此处,files
是一个List
,其中包含一系列字符串:List<string[]>
,这非常相似。很可能你的朋友没有特别谈论列表,你使用数组,词典或IEnumerable
就像常见一样。
发布的代码没有嵌套或二维列表。 X有一个Y数组,就是这样。但是,如果您有一个X列表,那么它将具有嵌套列表:
IEnumerable<X> xfiles = GetXFiles();
foreach(X file in xfiles)
{
foreach(Y section in file)
{
//...
}
}
归结为一个简单的观点:一个对象可以容纳其他任何复杂的对象。
答案 1 :(得分:1)
它们可能表示列表列表,例如
List<List<String>> listoflists = new List<List<String>>();
listoflists.Add(new List<String>(new string[]{"One","Two"}));
listoflists.Add(new List<String>(new string[]{"A","B","C"}));