Надеюсь, я смогу объяснить это там, где это имеет смысл, но я пытаюсь получить список объектов из основного списка, используя специальный и сложный (по крайней мере, для меня) набор критериев.
У меня есть класс TableInfo, который предоставляет список ForeignKeyInfo.ForeignKeyInfo имеет строковое свойство (среди прочего), которое называется Table.Мне нужно выполнить некоторую последовательную обработку, используя мои объекты TableInfo, но работать только с объектами TableInfo, которые я еще не обработал.Чтобы отслеживать, какие объекты TableInfo уже обработаны, у меня есть список, в котором хранится имя таблицы после завершения обработки.
Я хочу выполнить цикл, пока все элементы в моей коллекции TableInfo не появятся вмой обработанный список.Для каждой итерации цикла я должен обрабатывать все элементы TableInfo, где все строки ForeignKeyInfo.Table появляются в моем обработанном списке.
Вот как я написал это в «стандартном» циклическом коде:
while(processed.Count != _tables.Count)
{
List<TableInfo> thisIteration = new List<TableInfo>();
foreach (TableInfo tab in _tables)
{
bool allFound = true;
foreach (ForeignKeyInfo fk in tab.ForeignKeys)
{
allFound = allFound && processed.Contains(fk.Table);
}
if (allFound && !processed.Contains(tab.Name))
{
thisIteration.Add(tab);
}
}
//now do processing using thisIteration list
//variable, "thisIteration", is what I'd like to replace with the result from LINQ
}