У меня есть список кортежей, каждый кортеж имеет целое число и изображение, в списке есть несколько элементов с одно и то же целочисленное значение, но отличное изображение, поэтому я хочу получить элементы в списке с одним и тем же целым числом, а затем создать список изображений из их соответствующего элемента в списке.Фильтровать повторяющиеся (по целому) элементы в списке <Tuple <int,Image>> и создать словарь <int, List <Image>> C#
Например предположим, у меня 3 изображения
imageL1_1 и imageL1_2 находятся в списке с таким же целым числом
imageL2_1 находится в списке со значением
Image imageL1_1 = new Image();
imageL1_1.Source = new BitmapImage(new Uri("Resources/image1.png", UriKind.Relative));
Image imageL1_2 = new Image();
imageL1_2.Source = new BitmapImage(new Uri("Resources/image2.png", UriKind.Relative));
Image imageL2_1 = new Image();
imageL2_1.Source = new BitmapImage(new Uri("Resources/image3.png", UriKind.Relative));
List<Tuple<int,Image>> source = new List<Tuple<int,Image>>();
source.Add(new Tuple<int,Image>(1,imageL1_1));
source.Add(new Tuple<int,Image>(1,imageL1_2));
source.Add(new Tuple<int,Image>(2,imageL2_1));
Я хочу, чтобы фильтровать эти элементы и создать словарь, который выглядит как:
List<Image> l1 = new List<Image>();
l1.Add(imageL1_1);
l1.Add(imageL1_2);
List<Image> l2 = new List<Image>();
l2.Add(imageL2_1);
Dictionary<int, List<Image>> dictImages = new Dictionary<int, List<Image>>()
{
{1, l1},
{2, l2}
};
Я пытался:
Dictionary<int, List<Image>> result = new Dictionary<int, List<Image>>();
List<Image> listIm = new List<Image>();
foreach (Tuple<int, Image> diff in temp)
{
//How should I save items until key is different??
if(someCondition)
{
listIm.Add(diff.Item2); //save item on temp list
}
else
{
result.Add(diff.Item1, listIm); //save result on Dictionary
listIm.Clear(); //clean list
}
}
Я имею трудное время, чтобы выяснить состояние либо сохранить пункт список или сохранить элемент в словаре, как его решить?
Это можно сделать, используя LINQ
?
Интересное решение, поэтому группировка содержит все изображения с одним и тем же ключом, которые были сгруппированы, правильно? – cMinor
Это правильно. –