Сегодня я столкнулся с проблемой, и некоторое время я был в тупике, пытаясь получить результаты, которые ищу.
В настоящее время у меня есть класс, похожий на следующий:
public class InstanceInformation
{
public string PatientID {get; set;}
public string StudyID {get; set;}
public string SeriesID {get; set;}
public string InstanceID {get; set;}
}
У меня есть List
, и я пытаюсь использовать LINQ (или любые другие средства для создания путей ( для каталога файлов ) на основе этого списка, которые напоминают следующее:
PatientID/StudyID/SeriesID/InstanceID
Моя проблема заключается в том, что данные в настоящее время неструктурированы, поскольку они представлены в ранее упомянутой форме (Список), и мне нужен способ сгруппировать все данные со следующими ограничениями:
В настоящее время у меня есть что-то похожее на это:
var groups = from instance in instances
group instance by instance.PatientID into patientGroups
from studyGroups in
(from instance in patientGroups
group instance by instance.StudyID)
from seriesGroup in
(from instance in studyGroups
group instance by instance.SeriesID)
from instanceGroup in
(from instance in seriesGroup
group instance by instance.InstanceID)
group instanceGroup by patientGroups.Key;
, который просто группирует все мои InstanceID по PatientID, и довольно сложно отсеять все данные после этой массивной группировки, чтобы увидеть если области между ними (StudyID / SeriesID) теряются. Мы будем приветствовать любые другие способы решения этой проблемы.
Это в первую очередь предназначено только для группировки объектов - поскольку мне нужно было бы затем перебирать их (используя foreach)