-1

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

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
4

1 回答 1

0

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

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 分组的原始列表。

于 2012-11-13T14:02:30.320 回答