Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.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# 动态添加IEnumerable<;国际?>;关于c语言中的分组结果集#_C#_C# 4.0_Linq To Sql_C# 3.0 - Fatal编程技术网

C# 动态添加IEnumerable<;国际?>;关于c语言中的分组结果集#

C# 动态添加IEnumerable<;国际?>;关于c语言中的分组结果集#,c#,c#-4.0,linq-to-sql,c#-3.0,C#,C# 4.0,Linq To Sql,C# 3.0,有谁能建议我找出这个要求吗 var enableIds = context.items.Where(tble => tble.Date == null) .GroupBy(a => a.Id) .Select(g => new { Id = g.Key, EId = g.Select(c => c.EId).D

有谁能建议我找出这个要求吗

var enableIds = context.items.Where(tble => tble.Date == null)
                         .GroupBy(a => a.Id)
                         .Select(g => new
        {
            Id = g.Key,
            EId = g.Select(c => c.EId).Distinct()
        });
对于上面的查询,我得到的结果集如下

“Id\”:1,“EId\”:[1,2]


现在我必须像这样动态地向EId添加-1值(“EId\”:[1,2,-1])

我将使用helper方法
Concat
尝试类似的方法。helper方法可以实现为
IEnumerable
的扩展方法

var enableIds=\u db.items.Where(tble=>tble.Date==null)
.GroupBy(a=>a.Id)
.选择(g=>new
{ 
Id=g.键,
EId=Concat(g.Select(c=>c.EId).Distinct(),-1)
});
公共静态IEnumerable Concat(IEnumerable可枚举,参数T[]可枚举2)
{
如果(enumerable==null)抛出新ArgumentNullException(“enumerable”);
如果(enumerable2==null)抛出新的ArgumentNullException(“enumerable2”);
foreach(可枚举中的T)
{
收益率t;
}
foreach(枚举2中的T)
{
收益率t;
}
}
您可以使用扩展名:

 var enableIds = context.items.Where(tble => tble.Date == null)
                     .GroupBy(a => a.Id)
                     .Select(g => new
    {
        Id = g.Key,
        EId = g.Select(c => c.EId).Distinct()).ToList().Concat(new[] { -1 })
    });

它给出了这样一个错误:“除了Contains操作符之外,不能在查询操作符的LINQ到SQL实现中使用本地序列。”您应该在问题中提到,您使用的是Linq2Sql,而不仅仅是LINQ。我更新了我的答案。有没有办法在Concat完成之前不使用foreach loop.ToList。谢谢你的帮助。我在这里找到的解决方案是我的代码。
vari=newlist{-1};var enableIds=context.items.Where(tble=>tble.Date==null).ToList().GroupBy(a=>a.Id).Select(g=>new{Id=g.Key,EId=g.Select(c=>c.EId).Distinct().Concat(i)})它正在处理这样的编译时错误“无法将void分配给匿名类型属性”
 var enableIds = context.items.Where(tble => tble.Date == null)
                     .GroupBy(a => a.Id)
                     .Select(g => new
    {
        Id = g.Key,
        EId = g.Select(c => c.EId).Distinct()).ToList().Concat(new[] { -1 })
    });