C# 如何使用Lambda或Linq将匿名类型强制转换为基元类型成员
您好,我正在尝试使用Lambda表达式将匿名类型列表转换为原始类型列表,到目前为止我没有运气 我知道我可以使用foreach循环通过'a'并获取值,但我想知道如何在Lambda或Linq中实现C# 如何使用Lambda或Linq将匿名类型强制转换为基元类型成员,c#,linq,lambda,C#,Linq,Lambda,您好,我正在尝试使用Lambda表达式将匿名类型列表转换为原始类型列表,到目前为止我没有运气 我知道我可以使用foreach循环通过'a'并获取值,但我想知道如何在Lambda或Linq中实现 var a = new []{ new {name= "jerry", age = 32}, new {name="peter",age=23}}; List<string> b = a.Select(p => new System.String{p.name}).ToList();
var a = new []{ new {name= "jerry", age = 32}, new {name="peter",age=23}};
List<string> b = a.Select(p => new System.String{p.name}).ToList();
List<int> c = a.Select(p => new System.Int32{p.age}).ToList();
var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>newsystem.String{p.name}).ToList();
List c=a.Select(p=>newsystem.Int32{p.age}).ToList();
var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>p.name).ToList();
List c=a.Select(p=>p.age).ToList();
var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>p.name).ToList();
List c=a.Select(p=>p.age).ToList();
var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>p.name).ToList();
List c=a.Select(p=>p.age).ToList();
问题在于您在newsystem.String{p.name}
中使用了{and}。这不是实例化类型的有效方法。var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>p.name).ToList();
List c=a.Select(p=>p.age).ToList();
问题在于您在newsystem.String{p.name}
中使用了{and}。这不是实例化类型的有效方法。为什么要尝试通过调用构造函数来实例化新实例
这:
var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>p.name}).ToList();
List c=a.Select(p=>p.age).ToList();
很好。p、 年龄是一个整数,因此是一个值类型。这意味着它是按值复制的,所以在列表c中确实会得到一个唯一的副本。p、 名称是一个字符串。在.NET中,字符串是不可变的,因此共享字符串实例非常方便
还要注意的是,这两个构造甚至都不存在!
另一个注意事项是,在调用构造函数时,需要使用()而不是{}为什么要尝试通过调用构造函数实例化新实例
这:
var a=new[]{new{name=“jerry”,age=32},new{name=“peter”,age=23};
List b=a.Select(p=>p.name}).ToList();
List c=a.Select(p=>p.age).ToList();
很好。p、 年龄是一个整数,因此是一个值类型。这意味着它是按值复制的,所以在列表c中确实会得到一个唯一的副本。p、 名称是一个字符串。在.NET中,字符串是不可变的,因此共享字符串实例非常方便
还要注意的是,这两个构造甚至都不存在!
另一个注意事项是,在调用构造函数时,需要使用()而不是{}我认为我们总是需要将其强制转换为对象。谢谢你们的回答。我想我们总是需要把它投射到一个物体上。谢谢你们的回答。
var a = new[] { new { name = "jerry", age = 32 },new {name = "peter", age = 23}};
List<string> b = a.Select(p => p.name).ToList();
List<int> c = a.Select(p => p.age).ToList();
var a = new[] { new { name = "jerry", age = 32 }, new { name = "peter", age = 23 } };
List<string> b = a.Select(p => p.name).ToList();
List<int> c = a.Select(p => p.age).ToList();
var a = new []{ new {name= "jerry", age = 32}, new {name="peter",age=23}};
List<string> b = a.Select(p => p.name}).ToList();
List<int> c = a.Select(p => p.age).ToList();