2016-08-05 3 views
0

У меня есть следующий класс:Как получить значение определенного свойства из списка?

public class ClassA 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
    public string Property3 { get; set; } 
} 

Есть экземпляры класса в List<ClassA>. Как получить List<string> значений для Property2 со всех классов?

+0

Был ли какой-либо из нижеприведенных ответов решить вашу проблему? –

ответ

4

Вы можете использовать Linq.Select сделать так:

List<ClassA> list = new List<ClassA> 
{ 
    new ClassA { Property2 = "value 1"}, 
    new ClassA { Property2 = "value 2"}, 
}; 

//This is method syntax 
var result = list.Select(item => item.Property2).ToList(); 

//This is query syntax 
var result = (from item in list 
      select item.Property2).ToList(); 

не удерживай, что ToList() не должны и здесь только для простоты в использовании этого кода пример

Select в основном сводится что-то похожее на:

List<string> response = new List<string>(); 
foreach(var item in list) 
{ 
    response.Add(item.Property2); 
} 
3

Вы можете использовать Select

var properties = listOfA.Select(x=>x.Property2); 

или через query syntax:

var list = new List<ClassA>(); 

    var properties = from item in list 
        select item.Property2 
0

Чтобы перейти от «шаблон» Select(...).ToList() вы также можете использовать существующий метод внутри List<T>, которые делают работу, а именно ConvertAll с использованием почти такой же точный код ,

// source is your List<ClassA> 
var result = source.ConvertAll(item => item.Property2); 
// result is already a List<string> so no need for extra code 

 Смежные вопросы

  • Нет связанных вопросов^_^