Как проверить на наличие наследования интерфейса при прохождении списка?C#

Место общения программистов C#
Ответить
Anonymous
 Как проверить на наличие наследования интерфейса при прохождении списка?

Сообщение Anonymous »

У меня есть приложение на стороне сервера Blazor, где я использую DynamicComponent на странице для создания и добавления компонентов во время выполнения. Для этого у меня есть следующее: < /p>
Набор интерфейсов: < /p>

Код: Выделить всё

public interface IGetData
{
Task GetDataAsync(string condition);
}

public interface IGetDataA : IGetData
{
Task GetDataAsync(CriteriaA criteria);
}

public interface IGetDataB : IGetData
{
Task GetDataAsync(CriteriaB criteria);
}
< /code>
, а затем на странице (после создания компонентов): < /p>
public async Task RefreshAsync()
{
var itemsA = items.Where(x => x.Ref.Instance is IGetDataA)
.Select(x => x.Ref.Instance)
.Cast();

await Parallel.ForEachAsync(itemsA, async (item, token) =>
{
await item.GetDataAsync(criteriaA);
});

var itemsB = items.Where(x => x.Ref.Instance is IGetDataB)
.Select(x => x.Ref.Instance)
.Cast();

await Parallel.ForEachAsync(itemsB, async (item, token) =>
{
await item.GetDataAsync(criteriaB);
});
}
Можно ли объединить вышеперечисленное на один актер и один цикл?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ugh-a-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»