C# C LINQ返回通用列表
下面是我所选的两个班级。 不使用元组; 我想直接将查询从第一个列表发送到第二个结果列表 编码失败的部分显示为转换操作 谢谢你的时间和回复C# C LINQ返回通用列表,c#,linq,tuples,generic-list,C#,Linq,Tuples,Generic List,下面是我所选的两个班级。 不使用元组; 我想直接将查询从第一个列表发送到第二个结果列表 编码失败的部分显示为转换操作 谢谢你的时间和回复 static void Main(string[] args) { List<liste> personel = new List<liste>{ new liste { PersonId = 1, Name = "Burak", Surname = "Şenyurt"
static void Main(string[] args)
{
List<liste> personel = new List<liste>{
new liste { PersonId = 1, Name = "Burak", Surname = "Şenyurt", City = "İstanbul", Salary = 890 },
new liste { PersonId = 2, Name = "Maykıl", Surname = "Cordın", City = "Chicago", Salary = 930 },
new liste { PersonId = 3, Name = "Şakiyıl", Surname = "Oniyıl", City = "Los Angles", Salary = 986 },
new liste { PersonId = 4, Name = "Ümit", Surname = "Oniyıl", City = "Los Angles", Salary = 1035 },
new liste { PersonId = 5, Name = "Mehmet", Surname = "Zaferoğlu", City = "Los Angles", Salary = 1265 },
new liste { PersonId = 6, Name = "Hasan", Surname = "Orkun", City = "Los Angles", Salary = 1435 },
new liste { PersonId = 7, Name = "Raşit", Surname = "Mesut", City = "Los Angles", Salary = 1469 },
new liste { PersonId = 8, Name = "Hamdi", Surname = "Tanpınar", City = "Los Angles", Salary = 1535 },
new liste { PersonId = 9, Name = "Şevki", Surname = "Çapkın", City = "Los Angles", Salary = 1636 },
new liste { PersonId = 10, Name = "Özhun", Surname = "Bozkurt", City = "Los Angles", Salary = 1839 }
};
double resAVG = personel.Select(x => x.Salary).Average();
List<Sonuc> reportResult = GetReport(personel,resAVG);
}
结果类
public class Sonuc
{
public string Name { get; set; }
public string Surname { get; set; }
public double Salary { get; set; }
public Sonuc(string Name , string Surname, double Salary)
{
this.Name = Name;
this.Surname = Surname;
this.Salary = Salary;
}
public override string ToString()
{
return $"Name, SurName : {this.Name} , {this.Surname}\t\t\tSalary : {this.Salary}";
}
}
您试图通过传递一个字符串、一个字符串和一个double来构造List的实例。列表没有接受这些参数的构造函数。此外,在分配结果之前,不能使用它 相反,您应该将ListPersonel中的每个项投影到单个Sounc实例,然后将该可枚举项添加到列表中 公共静态列表GetReportList ListPersonel,双resAVG { 列表结果=来自ListPersonel中的e 其中,e.工资>=resAVG orderby e.降薪 选择新的姓名、姓氏、薪资列表; 返回结果; }
有错误吗?编码失败的部分显示为转换操作。-什么失败了?当前结果,expected resultGetReport预期第一个参数的类型为Sonuc,但您传递的是liste类型。这算是编译吗?@BretLipscomb谢谢,我没看到那个错误。现在我安排好了。但我仍然得到一个编译错误“error CS1729'List”不包含接受3个参数的构造函数“”错误CS0165使用未分配的局部变量“result”消息IDE1006命名规则冲突:这些单词必须以大写字符开头:ListIs GetReport应该将List的实例作为其第一个参数,还是列表的一个实例?@Julian我在以前的评论中写下了错误代码。=================='错误CS1729'List'不包含接受3个参数的构造函数''错误CS0165使用未分配的局部变量'result''消息IDE1006命名规则冲突:这些词必须以大写字符开头:ListThank您编写了一个很棒的解决方案。您对不同的解决方案或性能有何建议?我是一个新手软件爱好者,试图从书籍和视频中学习。但这里也有一个大致的叙述。就不同的解决方案而言。。。这可能就是我编写类似函数的方式。它的性能应该足够好,任何优化都是不成熟的,我认为:。谢谢你的回答。我想更新我的状态如下。10亿行表中的30列71136 x 5 x 2=我需要创建包含711360个查询的连续报告。我对你的表现很好奇。你会怎么做?
public class liste
{
public int PersonId { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
public string City { get; set; }
public double Salary { get; set; }
public override string ToString()
{
return $"PersonId : {PersonId}\t\tName , Surname {Name} , {Surname}\t\t\tSalary : {Salary}";
}
}
public class Sonuc
{
public string Name { get; set; }
public string Surname { get; set; }
public double Salary { get; set; }
public Sonuc(string Name , string Surname, double Salary)
{
this.Name = Name;
this.Surname = Surname;
this.Salary = Salary;
}
public override string ToString()
{
return $"Name, SurName : {this.Name} , {this.Surname}\t\t\tSalary : {this.Salary}";
}
}