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}";
    }
}