单一属性的泛型列表到字符串列表

本文关键字:列表 字符串 泛型 属性 单一 | 更新日期: 2023-09-27 18:13:37

我有一个通用列表,说类Student

ID
Name
Class

为属性。

我需要将其转换为仅具有List<student>的Name属性的List<string>我做了什么?

List<student> stud;
List<string> str;
foreach (var item in stud)
 {
 str.Add(item.Name);
 }

是否有更简单的方法,我可以做到这一点,而不是使用每个?

谢谢

单一属性的泛型列表到字符串列表

您可以使用Linq Select来投影您的结果:

List<string> str = stud.Select(s => s.Name).ToList();
var str = stud.Select(s => s.Name).ToList();

use linq

List<student> stud;
List<string> str;
str = stud.Select(s => s.Name).ToList();

作为建议的基于linq的解决方案的替代方案:

List<string> str = stud.ConvertAll(s => s.Name);

我可能会使用Select/ToList而不是List<T>.ConvertAll,因为它更灵活(例如,如果您稍后将stud更改为数组也没关系),但无论如何都值得注意ConvertAll。特别是:

  • 在。net 2中可以直接使用
  • 它比Select/ToList更有效,因为转换知道开始的大小。(这些知识在Select中有效地丢失了。)

以上答案都在linq的方法语法中。我将为您提供相同的查询语法-

List<string> str = (from item in stud select Name).ToList();