C# 如何使用c和Linq从列表中获取数据
我有课C# 如何使用c和Linq从列表中获取数据,c#,.net,linq,C#,.net,Linq,我有课 public class DevicePart { public int Id {get;set;} public string Name {get;set;} public int Distance {get;set;} } public class Device { public int ID {get;set;} public string Name {get;set;} public List<DevicePart>
public class DevicePart
{
public int Id {get;set;}
public string Name {get;set;}
public int Distance {get;set;}
}
public class Device
{
public int ID {get;set;}
public string Name {get;set;}
public List<DevicePart> Parts {get;set;}
}
public class Data
{
public int Id{get;set;}
public string Name{get;set;}
public int ParentId{get;set;}
public int Distance{get;set;}
}
我有一份包含数据的清单:
1.电话0;0
2.电视0;0
3.电池1.5.
4.按钮1.3.
5.网络摄像头2.5.
如何创建最佳且更快的linq查询或递归过程以从数据列表创建对象列表
var data = new List<Data>()
{
new Data() { Id = 1, Name = "Phone", ParentId = 0, Distance = 0 },
new Data() { Id = 2, Name = "TV", ParentId = 0, Distance = 0 },
new Data() { Id = 3, Name = "battery", ParentId = 1, Distance = 5 },
new Data() { Id = 4, Name = "button", ParentId = 1, Distance = 3 },
new Data() { Id = 5, Name = "webcam", ParentId = 2, Distance = 5 },
};
var lookup = data.ToLookup(x => x.ParentId);
var devices =
lookup[0]
.Select(x => new
{
ID = x.Id,
x.Name,
Parts =
lookup[x.Id]
.Select(y => new
{
y.Id,
y.Name,
y.Distance,
})
.ToList(),
})
.ToList();
它给了我这个:
什么是对象列表?对象列表-问题中有5个示例行的列表比什么更快?我们需要看看你在比较什么。同意理查德的观点。此外,您没有给出如何将数据传输到设备的指示,因此我们很难告诉您如何提供帮助。你有没有一个方法,它接受的数据是一个非常非描述性的类名,并且可能希望以某种方式进行更改-毕竟所有东西都是数据,并将其转换为设备,等等。所以你也有递归,它能有多深?你们试过什么吗?是的,当我第一次更新页面时,我看到的代码没有进行查找初始化。现在我明白了it@Std_Net-抱歉,我没有复制并粘贴所有代码。我很快就修好了-