У меня есть источник данных, содержащий следующие столбцы:
ID | Tile | Score | Type
У меня есть несколько строк в этом источнике данных, но интерес представляет столбец «Тип», который содержит определение типа, к которому относится каждая строка, что-то вроде:
1 | Apple | 12 | Pipped
2 | Banana | 34 | Flesh
3 | Kiwi | 32 | Flesh
4 | Orange | -1 | Pipped
5 | Grapes | 3 | Pipped
6 | Potato | 5 | Skinned
Мне нужно собрать эту информацию в коллекцию или KeyValuePair<string, List<Data>>
, но я не могу найти эффективный способ сделать это.
В настоящее время я использую LINQ, чтобы получить коллекцию для каждого из типов (перечислитель):
var pipped = (from p in dataSource where p.Type != null && p.Type.Equals(enum.Pipped) select p).ToList();
var flesh = (from p in dataSource where p.Type != null && p.Type.Equals(enum.Flesh) select p).ToList();
var skinned = (from p in dataSource where p.Type != null && p.Type.Equest(enum.Skinned) select p).ToList();
SortedDictionary<string, List<dataSource>> items = new SortedDictionary<string, List<dataSource>>();
items.Add("Pipped", pipped);
items.Add("Skinned", skinned);
items.Add("Flesh", flesh);
Должен быть более эффективный способ сделать это?