使用foreach循环,但坚持做什么

时间:2012-11-13 13:13:24

标签: c#

我有一个收集列表,它返回以下结果:

GenderID      Name    Gender
1              Mary   F
1              Jane   F
1              Lori   F
2              John   M
2              Mike   M

我正在使用foreach循环并基于GenderID动态创建列表视图。我担心在GenderID发生变化时要检查什么。任何人都可以指出我或给我一些反馈。

public void GetGenderInfo()
{
    int? currentGenderID = null;

    List<Gender> lstGenders = GetListOfGenders();

    foreach (var g in lstGenders)
    {
        currentGenderID = g.GenderID;

        if ( //what goes here )
        {
            // create ListView
        }
    }
}

预期结果为:

Mary F     John M
Jane F     Mike M
Lori F

1 个答案:

答案 0 :(得分:0)

由于您希望按照certian值进行分组,因此您需要跟踪分组值。添加列表字典可以解决这个问题。看看下面的代码:

public void GetGenderInfo()
{
    List<Gender> lstGenders = GetListOfGenders();

    var tmpDict = new Dictionary<int, List<Gender>();
    foreach (var g in lstGenders)
    {
        List<Gender> currGender;
        if (!tempDict.TryGetValue(g.GenderId, out currGender)
        {
            currGender = new List<Gender>();
            tempDict.Add(g.GendrId, currGender);
        }
        currGender.Add(g);
     }

    //Now itterate your dictionary & pull out the groupings.
    }

tmpDict现在包含按GenderId分组的原始列表。