0

ディクショナリにすでに座標セットが含まれているかどうかを確認するにはどうすればよいですか? SelectManager と Where を使用していますが、カウントがまだ間違っています。一般的なリストの値をチェックしたとは思わない。

matchTile を反復処理し、一般的なリスト内の他のすべての要素を条件 (質問の一部ではない) についてチェックするようにします。

その条件を満たしていれば、同じグループに追加されます。次の繰り返しが来ると、その要素がすでにグループに追加されているかどうかを確認する必要があります。はいの場合、スキップします。そうでない場合は、新しいグループ (リスト) を作成します。

誰でも助けることができますか?

private void groupMatches(List<int[]> matchTile){
    Dictionary<int, List<int[]>> groups = new Dictionary<int, List<int[]>>();
    int i = 0;

    foreach(int[] coord in matchTile){
        var alreadyCounted = groups.SelectMany(x => x.Value).Where(x => x[0] == coord[0] && x[1] == coord[1]);

        Debug.Log ("counted: " + alreadyCounted.Count ());

        if(alreadyCounted.Count() > 0) continue;

        // Create new group
        groups.Add(i, new List<int[]>());   
        groups[i].Add(coord);

        foreach(int[] nextCoord in matchTile){
            if (...)
            {
                groups[i].Add(nextCoord);   
            }
        }

        i++;
    }   

    Debug.Log ("groups: " + groups.Count);
}
4

1 に答える 1