Возвращать различные значения динамически - PullRequest
0 голосов
/ 19 июля 2011

У меня есть класс с этой структурой:

public class BusinessObject
{
    public int Column5 { get; set; }
    public int Column6 { get; set; }
    public string Column7 { get; set; }
    public int Column8 { get; set; }   
}

, и у меня есть эта строка, использующая LINQ:

List<int> test = (from x in BusinessObjectCollection select x.Column5).Distinct().ToList();

, теперь это работает хорошо .. но что, если я незнать свойство, которое пользователь хочет, чтобы различные значения?Что если все, что у меня есть, это строковая переменная, которая сообщает мне, для какого столбца нужны отличные значения ???

Ответы [ 3 ]

2 голосов
/ 19 июля 2011

Попробуйте

List<object> test = (from x in BusinessObjectCollection select x.GetType().GetProperty ("thePropertyName").GetGetMethod().Invoke(x,null)).Distinct().ToList();
0 голосов
/ 19 июля 2011

Попробуйте что-нибудь подобное псевдокод! :

 IQueryable<BusinessObject> filteredBoList = boList.AsQueryable();
 Type boType= typeof(BusinessObject);
 foreach(string filter in filterColumnNames) {
    var found = filteredBoList.Where(p =>    (string)boType.InvokeMember(filter.FieldName,BindingFlags.GetProperty, null, p, null) == filter ).Distinct();
 }

Должно работать.

С уважением.

0 голосов
/ 19 июля 2011

Я бы использовал if.Зачем это усложнять?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...