あなたはright
を選択する例えば、linq
を使用することができます。
var rightGroup = myList.Where(c => c.d == Direction.right);
あなたはすべての列挙値のためにこれを自動的に行いたい場合は、あなたのようなループを使用することができます。
foreach (Direction direction in Enum.GetValues(typeof(Direction)))
{
var groupList = myList.Where(c => c.d == direction);
}
これはいくつかの変数になります。
また、このようにLINQを使用することができます。
var group = from item in myList
group item by item.d into g
select new { key = g.Key, listItems = g.ToList() };
これは、キー、およびアイテムでいっぱいのlistItemsとしての方向で、対象になります。追加されていない道順の空のリストが必要な場合は、方向の列挙型に参加する必要があります。
よりエキゾチックな例として:私はあなたが正確に何をしたいかわからない
var group = from item in myList
where item.d == Direction.left //some condition on item
group item by item.d into g
where g.Any(c => c.d == Direction.up) //some condition on the group
select new { key = g.Key, values = g.ToList() };
少なくとも、もしあれば "foreach"を試してみましたか? – Fabio