Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用c和Linq从列表中获取数据_C#_.net_Linq - Fatal编程技术网

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-抱歉,我没有复制并粘贴所有代码。我很快就修好了-