C# 创建列表<;字符串>;从列表之一中删除<;对象>';s字符串属性
所以我有一个汽车物体的清单C# 创建列表<;字符串>;从列表之一中删除<;对象>';s字符串属性,c#,string,linq,list,C#,String,Linq,List,所以我有一个汽车物体的清单 List<Car> cars = GetCars(); List cars=GetCars(); 我想创建一个来自Car.Name字符串属性的字符串列表 我可以这样做: List<string> carNames = new List<string>(); foreach(Car car in cars) { carNames.Add(car.Name); } List carNames=new List(); for
List<Car> cars = GetCars();
List cars=GetCars();
我想创建一个来自Car.Name字符串属性的字符串列表
我可以这样做:
List<string> carNames = new List<string>();
foreach(Car car in cars)
{
carNames.Add(car.Name);
}
List carNames=new List();
foreach(汽车中的汽车)
{
加上(车名);
}
有没有更别致的方法?你能用LINQ做这个吗?List cars=GetCars();
var carNames = cars.Select(c => c.Name).ToList();
列出carNames=cars.Select(x=>x.Name.ToList();
如果您喜欢查询表达式语法,以下语法也适用:
var carNames =
(from c in cars
select c.Name).ToList();
var carNames=cars.Select(c=>c.Name.ToList() 是,请尝试
cars.Select(x=>x.Name).ToList()你来这里之前至少应该先在谷歌上搜索一下。这可能会对你有所帮助,我个人认为你那里的东西很好,很好,可读性很强。但是。。这不是Lambda表达式。这是查询语法,编译器会将其转换为包含lambda表达式的fluent语法。你是说如果你不喜欢lambda?我指的是查询语法,而其他答案使用的是方法语法。这两种方法都有效。这将只返回汽车名称的第一个元素。或者违约。
var carNames =
(from c in cars
select c.Name).ToList();