2015-08-28 2 views
0

У меня есть проблема:Универсальный объект приложения отличается от переменной

В моем коде у меня есть этот OBJ

//:extension for being saved locally 
public class FOO 
{ 
    public int ID { get; set; } 
    public string STRINGVALUE{ get; set; } 
    public int INTVALUE { get; set; } 
    //ecc.. 

    //SelectAll() method which returns all FOO in local DB 
} 

Теперь то, что я хочу есть, в некоторых случаях, чтобы выбрать все FOO OBJ где STRINGVALUE (или INTVALUE) не дублируется.

Например:

List<FOO> fooes = new FOO().SelectAll(); 
List<FOO> uniqueIntFoo = fooes.distinct(); //here i have to set the clause 

Существует метод Distinct() в Linq, но это сравнить весь элемент, а не одну переменную этого.

Любой из вас знает, как я могу это сделать?

ответ

1

насчет группирование результатов, что-то вроде: обоими Int и StrValue:

var uniqueItems = fooes.GroupBy(x => new{x.IntVal, x.StrVal}); 

По IntVal:

var uniqueItems = fooes.GroupBy(x => x.IntVal); 

Edit, как это было предложено автором Вопрос по:

fooes.GroupBy(x => x.INTVALUE).Select(y => y.First()).Distinct().ToList(); 
+0

i succeded with fooes.GroupBy (x => x.INTVALUE) .Выберите (y => y.First()). Distinct(). ToList(); Ваш совет указал мне на правильное решение. вероятно, также не объяснилось. Если вы отредактируете ответ с кодом, который я написал, я установлю его как решение :) –