Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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# 通过id与linq连接集合_C#_Linq - Fatal编程技术网

C# 通过id与linq连接集合

C# 通过id与linq连接集合,c#,linq,C#,Linq,我有一个对象集合 var myData = new[] { new { ID = "1285", COUNT = 45 }, new { ID = "1286", COUNT = 156 }, new { ID = "1287", COUNT = 965 } }; 我的另一个收藏来自另一个数据源,如下所示: var incomingData = new

我有一个对象集合

var myData = new[]
{
    new {
        ID = "1285",
        COUNT = 45
    },
    new {
        ID = "1286",
        COUNT = 156
    },
    new {
        ID = "1287",
        COUNT = 965
    }
};
我的另一个收藏来自另一个数据源,如下所示:

var incomingData = new[]
{
    new {
        ID = "1285",
        LOCATION = "City-1"
    },
    new {
        ID = "1286",
        LOCATION = "City-2"
    },
    new {
        ID = "1287",
        LOCATION = "City-3"
    }
};
var result= 
    (
        from data in myData
        join inData in incomingData
            on data.ID equals inData.ID
        select new
        {
            data.ID,
            inData.LOCATION,
            data.COUNT
        }
    ).ToList();
我想用COUNT属性按Id更改传入数据

var NewData = new[]
{
    new {
        ID = "1285",
        LOCATION = "City-1",
        COUNT = 45
    },
    new {
        ID = "1286",
        LOCATION = "City-2",
        COUNT = 156
    },
    new {
        ID = "1287",
        LOCATION = "City-3",
        COUNT = 965
    }
};

如何使用linq labda函数实现这一点。我不想使用foreach循环。(
myData
incomingData
收集长度可能不同)

只需使用如下普通连接语句:

var incomingData = new[]
{
    new {
        ID = "1285",
        LOCATION = "City-1"
    },
    new {
        ID = "1286",
        LOCATION = "City-2"
    },
    new {
        ID = "1287",
        LOCATION = "City-3"
    }
};
var result= 
    (
        from data in myData
        join inData in incomingData
            on data.ID equals inData.ID
        select new
        {
            data.ID,
            inData.LOCATION,
            data.COUNT
        }
    ).ToList();

简单易读

只需使用以下普通连接语句:

var incomingData = new[]
{
    new {
        ID = "1285",
        LOCATION = "City-1"
    },
    new {
        ID = "1286",
        LOCATION = "City-2"
    },
    new {
        ID = "1287",
        LOCATION = "City-3"
    }
};
var result= 
    (
        from data in myData
        join inData in incomingData
            on data.ID equals inData.ID
        select new
        {
            data.ID,
            inData.LOCATION,
            data.COUNT
        }
    ).ToList();

简单易读

如果集合长度不同,那么一个集合中的元素在另一个集合中不会出现,该怎么办?只有匹配的项目才会出现?我明白了,谢谢:)我想我想我已经想得太多了!如果集合的长度不同,那么一个集合中没有出现在另一个集合中的元素会发生什么情况?只有匹配的项目才会出现?我明白了,谢谢:)我想我考虑得太多了!“简单易懂”-非常好!“简单易懂”-非常好!