c#填空记录

时间:2017-06-14 16:18:27

标签: c# space fill

需要一些帮助我的foreach来重新识别空记录并填补空白" - ";

让我们说在这种情况下我们有30分钟,45分钟,90分钟,120分钟而不是60分钟:

它可以统计每个id的总记录,让我们说最大值是5,30分钟,45分钟,60分钟,90分钟和120分钟。

如果有3个,那么它可以检查哪个丢失了,而且可以填写" - "。

脚本的相同意思。

List<Treatment> treatment = new List<Treatment>();
treatment.Add(new Treatment { id = 1, treatmentNameId = 11, duration = "30", price = 30 });
treatment.Add(new Treatment { id = 1, treatmentNameId = 11, duration = "45", price = 45 });
treatment.Add(new Treatment { id = 1, treatmentNameId = 11, duration = "60", price = 60 });
treatment.Add(new Treatment { id = 1, treatmentNameId = 2, duration = "30", price = 30 });
//treatment.Add(new Treatment { id = 1, treatmentNameId = 2, duration = "45", price = 45 });
treatment.Add(new Treatment { id = 1, treatmentNameId = 2, duration = "60", price = 60 });

var newList = (from t in treatment
                         select t)
                         .AsQueryable().ToList();

List<List> newList= new List<List>();
foreach (var item in newList) 
{       
    if (item.duration == "30") 
    {
        newList.Add(new List {  treatmentNameId = item.treatmentNameId, thirtyMin = "30" });
    }

    if (item.duration == "45") 
    {
        newList.Add(new List {  treatmentNameId = item.treatmentNameId, fortyFive= "45" });  
    }                

    if (item.duration == "60") 
    {
        newList.Add(new List {  treatmentNameId = item.treatmentNameId, sixty= "60" });         
    }  
}

最终结果应该像是,

id:1  30, 45, 60, -
id:2  30, - , 60, 90
id:3  - , 45, -, 90

等...

很多人都感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我不打算提供所有这些的非常详细的解释,但从概念上讲,我只是通过treatmentNameId进行分组,然后做一些非常类似于SQL中的外连接的东西。如果群组连接在持续时间内呈空,我选择“ - ”而不是持续时间。使用匿名类型简洁。

11: -, 30, 45, 60
2: -, 30, -, 60

这导致:

route()

如果您对某些更具体的问题有疑问,我会很乐意进一步解释。