Чтобы получить имя от id, используя отражение от перечислимого. Я использую:Как использовать Linq с Reflection в C#?
foreach(string idValue in Values)
{
var listSource = itemsSource as IEnumerable;
Type listType = listSource.GetType().GenericTypeArguments[0]
PropertyInfo idProperty = listType.GetType().GetProperty("Id");
PropertyInfo nameProperty = listType.GetType().GetProperty("Name");
foreach (var listItem in listSource)
{
if (idValue.Equals(idProperty.GetValue(listItem, null).ToString()))
{
value = nameProperty.GetValue(listItem, null).ToString();
break;
}
}
//do something with value.
}
Как использовать Linq с отражением, так что мне не нужен цикл по элементам для каждого значения «idValue» во внешнем контуре ??
что-то вроде:
reflectionList.Select(x=> x.idProperty == idValue)
и использовать его, чтобы получить значение nameProperty
Пожалуйста, помогите.
Использование LINQ не позволяет избежать циклов, это просто означает, что вам не нужно их выписывать. – Servy
Добавить использование в System.Linq? – Botonomous
В чем вопрос? _ «Как преобразовать это в Linq» _? – CodeCaster