-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 に答える