Linq select 语句在输出控制台中打印项目.class名称作为结果



我创建了一个名为 Employees 的类,创建了三个员工。然后,我创建了一个List<>来存储员工对象

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AutomationTest
{
public class Employees
{
public String ID { get; set; }
public String Name { get; set; }
public List<int> Salary { get; set; }
public static List<Employees> GetEmployeesSalaries()
{
List<Employees> employees = new List<Employees>();
List<int> johnsalary = new List<int> { 1100,1200,1300 };
List<int> jamessalary = new List<int> { 1400, 1450, 1500 };
List<int> timsalary = new List<int> { 1600, 1700, 17500 };
employees.Add(new Employees { ID = "N001", Name = "John", Salary = johnsalary  });
employees.Add(new Employees { ID = "N002", Name = "James", Salary = jamessalary });    
employees.Add(new Employees { ID = "N003", Name = "Tim", Salary = timsalary });
return employees;
}       
}  
}

然后,我创建了查询语句,但在控制台输出中将项目.class名称作为 Automationtest.Employee

using System.Text;
using System.Threading.Tasks;    
namespace AutomationTest
{
class Program 
{
static void Main(string[] args)
{
IEnumerable<Employees> querysalary = (Employees.GetEmployeesSalaries().Where(i => i.Name.Contains("m"))).ToList<Employees>();
//IEnumerable<Employees> querysalary = from empl in Employees.GetEmployeesSalaries()
// where empl.Name.Contains("a") select empl;
//var querysalary = (from k in Employees.GetEmployeesSalaries() select k).ToString();
foreach (var ss in querysalary)
{
Console.WriteLine(ss);
}
Console.ReadLine();
}
}
}

Console.WriteLine调用对象的.toString()方法时,不会为您提供对象的可读形式。您可以覆盖它以创建自己的实现。尝试在您的Employees类中添加 thid 函数

public override string ToString()
{
return $"{ID} {Name} {String.Join(", ", Salary)}";
}

对于列表,您必须遍历各个条目并将它们放在一个字符串中。这可以通过String.Join方法完成。

工作示例:

public static void Main(string[] args)
{
var character = new Employee();
Console.Write(character);
}
public class Employee
{
public Employee()
{
Salary = new List<int> { 2, 3, 4 };
}
public override string ToString()
{
return $"{String.Join(", ", Salary)}";
}
public List<int> Salary { get; set; }
}

相关内容

最新更新