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# linq分组ID基并将公共数据插入新数组_C#_Linq - Fatal编程技术网

C# linq分组ID基并将公共数据插入新数组

C# linq分组ID基并将公共数据插入新数组,c#,linq,C#,Linq,我正在处理集合,集合是groupby ID,我得到了一些重复的数据,这些数据不是很完美,所以我在寻找一些最佳的处理方法,这样我就可以得到下面的预期结果样本数据 现在的收藏品看起来是这样的 [{ "id": 116, "amgId": 168755, "amgName": "FIT", "prodQty": 4801, "prodMonth": "2020/03", }, {

我正在处理集合,集合是groupby ID,我得到了一些重复的数据,这些数据不是很完美,所以我在寻找一些最佳的处理方法,这样我就可以得到下面的预期结果样本数据 现在的收藏品看起来是这样的

       [{
        "id": 116,
        "amgId": 168755,
        "amgName": "FIT",

        "prodQty": 4801,
        "prodMonth": "2020/03",
    },
    {
        "id": 117,
        "amgId": 168755,
        "amgName": "FIT",

        "prodQty": 3746,
        "prodMonth": "2020/04",
    }],
    [
    {
        "id": 61,
        "amgId": 168383,
        "amgName": "CIVIC",

        "prodQty": 0,
        "prodMonth": "2020/03"
    },
    {
        "id": 62,
        "amgId": 168383,
        "amgName": "CIVIC",

        "prodQty": 0,
        "prodMonth": "2020/04"
    }],
    expecting to be grouped like below
   [
  "amgId": 168755,
 "amgName": "FIT",
   "prodQty"{
 "prodQty1": 4801,
 "prodQty2": 3746,
  }
],
  [
 "amgId": 168383,
 "amgName": "CIVIC",
 "prodQty"{
 "prodQty1": 0,
 "prodQty2": 0,
 }
]

我这样做了,不管怎样我都会让它更有效率

 var grp = productionvolume.GroupBy(x => x.AmgId).Select(y => y.ToList()).ToList();
 foreach (var production in grp)
        {


            Dictionary<string, object> prodQty = new Dictionary<string, object>();
            Dictionary<string, object> Forecast_type = new Dictionary<string, object>();
            Dictionary<string, object> Month = new Dictionary<string, object>();
            Dictionary<string, object> Qty = new Dictionary<string, object>();


            prodQty.Add("AmgName", production.Select(a => a.AmgName).FirstOrDefault());
            prodQty.Add("AmgId",production.Select(id => id.AmgId).FirstOrDefault());
            int count = 0;

            foreach (var prod in production)
            {
                Forecast_type.Add("ForecastType"+count, prod.ForecastType );
                Month.Add("ProdMonth"+count, prod.ProdMonth);
                Qty.Add("ProdQty"+count,prod.ProdQty);
                count ++;

            }
            prodQty.Add("Forecast_type",Forecast_type);
            prodQty.Add("ProdMonth",Month);
            prodQty.Add("ProdQty", Qty);
            //prodQty.Add(Qty);
            prodQty_result.Add(prodQty);

        }
var grp=productionvolume.GroupBy(x=>x.AmgId)。选择(y=>y.ToList()).ToList();
foreach(玻璃钢中的var生产)
{
Dictionary prodQty=新字典();
字典预测类型=新字典();
字典月=新字典();
字典数量=新字典();
prodQty.Add(“AmgName”,production.Select(a=>a.AmgName.FirstOrDefault());
prodQty.Add(“AmgId”,production.Select(id=>id.AmgId.FirstOrDefault());
整数计数=0;
foreach(生产中的var产品)
{
预测类型添加(“预测类型”+计数,产品预测类型);
月。添加(“生产月”+计数,生产月);
数量添加(“生产数量”+计数,生产数量);
计数++;
}
产品数量添加(“预测类型”,预测类型);
产品数量添加(“产品月”,月);
产品数量添加(“产品数量”,数量);
//产品数量增加(数量);
产品数量\结果添加(产品数量);
}

到目前为止您尝试了什么?每个最多有2个吗?每个最多有5个。我尝试将它们分组,然后在内部循环以将它们插入新数组中,但Dinn认为这是一种更好的方法。感谢GroupBy,然后循环结果并始终获取第一个结果应该这样做prodQty可以是一个值数组而不是prodQty1、prodQty2等吗。?