【发布时间】:2013-11-18 15:07:27
【问题描述】:
我正在测试一个要在我的项目中使用的简单代码块。首先我想举个例子。这里是类
class Processing
{
public string Region { get; set; }
public Car _car {get;set;}
public double Kilometer { get; set; }
}
class Car
{
public string LicansePlate { get; set; }
public string Driver { get; set; }
public double OdoMeter { get; set; }
}
现在。我已经创建了处理列表。这个列表包含:
- 字符串区域
- 汽车 _car
- 双公里
我想简单地使用 SelectMany() 使列表变平。为什么我使用这种方式是 SelectMany() 将来会以“var”作为参考。我的目标输出是这样的:
Region LicancePlate Driver 里程表公里 …………………… ... ... ... ... ...
这个代码块只是测试。主块是这样的。
public partial class MainWindow : Window
{
List<Processing> proces;
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
proces= new List<Processing>(){
new Processing {Region="Konya",Kilometer=96,_car= new Car(){LicansePlate="34 ABR 45", Driver="Hasan Doğan", OdoMeter=1322}},
new Processing {Region="Karaman",Kilometer=233,_car=new Car{ LicansePlate="34 JT 9809" ,Driver="Ahmet Turgut",OdoMeter=1231}},
new Processing { Region = "Ankara", Kilometer = 57, _car=new Car {LicansePlate = "34 JK 8547", Driver = "Tuncay Yıldız", OdoMeter = 472 }}
};
var kk = proces.SelectMany(b => b);
dtgrid.ItemsSource = kk.ToList();
}
var kk = kullanımlar.SelectMany(b => b); 句子给出错误。如何使用 SelectMany() 获取带有子字段的所有行。错误如下: 无法从用法中推断出来。尝试明确指定类型参数。
【问题讨论】:
-
kullanımlar似乎没有在您提供的代码中定义。请花一些时间使代码 sn-p 可读和可运行。 -
var 并不意味着对象不需要类型 - 只是类型是推断出来的
-
对不起。我刚刚将 kullanımlar 更改为过程。我将给出匿名列表(var)。所以我必须能够使用 SelectMany 使列表变平,用于所有类型的列表。
标签: c# list lambda extension-methods linq