2012-01-03 6 views
0

У меня есть класс, который определяется следующим образом:Создать список <int> из списка <class>

class A 
{ 
int contractID; 
string name; 
string blah; 
etc... 
} 

Нескольких ClassA хранятся сохраненным в списке(). I и создать список, основанный на всех Контрактах в списке. Есть ли способ в LINQ, чтобы иметь возможность сделать это вместо повторения через List()?

ответ

8

Вы можете использовать метод расширения Select для создания проекции contractID. Как:

var listOfClass = new List<ClassA>(); //Or however you get your list. 
var contractIDs = listOfClass.Select(x => x.contractID).ToList(); 
0

var onlyContractIDs = myList.Select(x => x.contractID).ToList()

0
List<ClassA> input = ...; 
List<int> output = input.Select(a => a.contractID).ToList(); 

Select является универсальным методом. Явно указано, что это будет Select<ClassA, int>, указав типы ввода и вывода.

ToList() в конце преобразует из IEnumerable<int> в List<int>, и это делает итерации по списку ввода сейчас, а не когда IEnumerable<int> нумеруются.

0

Если у вас есть список вы можете сделать список с помощью LINQ, как этот

List<int> contractIDs = mycollection.Select(a => a.ContractID).ToList(); 
0
var list = new List<ClassA>(); 
...    
list.Select(a => a.ContractID); 
Смежные вопросы