Преобразование типов данных в C # - PullRequest
3 голосов
/ 19 ноября 2011

Вот мои классы C #:

public class myClass {

     // Some properties irrelevant to the question

     public List<someObject> ListOfStuff { get; set; }
}


public class someObject {

   public string Id { get; set; }

   public string Name { get; set; }
}

Вопрос: можно ли извлечь все Id в отдельный массив и все Name в другой отдельный массив?

Например, что-то вроде этого:

 myClass foo;
 // Populate foo...  
 List<string> names = foo.ListOfStuff( what goes here? );

Ответы [ 4 ]

5 голосов
/ 19 ноября 2011

Вы можете сделать это, используя Select метод LINQ:

List<string> names = foo.ListOfStuff.Select(x => x.Name).ToList<string>();
List<string> ids = foo.ListOfStuff.Select(x => x.Id).ToList<string>();
3 голосов
/ 19 ноября 2011

LINQ делает это довольно просто:

var idArray = ListOfStuff.Select(item => item.Id).ToArray();

Чтобы получить массив имен, просто измените свойство, которое вы выбираете в методе Select ().

2 голосов
/ 19 ноября 2011

Вы можете использовать LINQ для этого, например,

List<string> names = foo.ListOfStuff.Select(x => x.Name).ToList();
2 голосов
/ 19 ноября 2011

Вот запросы linq, чтобы выполнить то, что вы хотите сделать:

IEnumerable<string> names = foo.ListOfStuff.Select(f => f.Name);
IEnumerable<string> IDs = foo.ListOfStuff.Select(f => f.Id);

Если вы хотите сохранить их в List, просто прикрепите ToList() к концуэти запросы:

List<string> IDs = foo.ListOfStuff.Select(f => f.Id).ToList();
List<string> Names = foo.ListOfStuff.Select(f => f.Name).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...