-5

2010 年以前に雇用されたグリッドの従業員を表示しようとしています。どうすればそれを行うことができますか? Employeeプロパティ (FirstName、LastName、Id、および EmploymentDate)を持つクラスがあります。

private List<Employee> _employees = new List<Employee>();

private void Form1_Load(object sender, EventArgs e)
{
    Employee employee1 = new Employee();

    employee1.FirstName = "Etrit";
    employee1.LastName = "Bujupi";
    employee1.Id = 1;
    employee1.EmploymentDay = DateTime.Today;
    _employees.Add(employee1);            

    Employee employee2 = new Employee();

    employee2.FirstName = "Urim";
    employee2.LastName = "Sadiu";
    employee2.Id = 2;
    employee2.EmploymentDay = new DateTime(2009, 1, 23);
    _employees.Add(employee2); 


    Employee employee3 = new Employee();

    employee3.FirstName = "Dardan";
    employee3.LastName = "Mexhuani";
    employee3.Id = 3;
    employee3.EmploymentDay = new DateTime(2007, 2, 7);
    _employees.Add(employee3);            

    Employee add = new Employee();
    if (_employees < System.DateTime.Now)
    {
        EmployeeGrid.DataSource = _employees;
    }
}
4

6 に答える 6

2

これを変更するのはどうですか:

if (_employees < System.DateTime.Now)
{
    EmployeeGrid.DataSource = _employees;
}

 EmployeeGrid.DataSource = _employees.Where(e => e.EmploymentDay.Year < 2010).ToList();

最後の部分は必要ないかもしれ.ToList()ませんが、実際のデータ構造と一致するように追加しました。.ToList()それが機能するかどうかを確認するために、最初にそれを試してみることをお勧めします。

于 2013-01-18T15:52:46.833 に答える
2

Linqそれをフィルタリングするために使用できます:

employeeGrid.DataSource = _employees.Where(e => e.EmploymentDay.Year < 2010);

もちろん、DateTime.Yearプロパティをチェックして最初にそれらを追加しない方がよいでしょう。

于 2013-01-18T15:53:11.757 に答える
2
EmployeeGrid.DataSource = _employees.Where(e => e.EmploymentDay.Year < 2010).ToList();
于 2013-01-18T15:52:19.130 に答える
2

これを試して :

EmployeeGrid.DataSource = _employees.Where(x=> x.EmploymentDay.Year < 2010);
于 2013-01-18T15:52:30.223 に答える
0
var query = from e in _employees
            where e.EmploymentDay.Year < 2010
            select e;
于 2013-01-18T15:55:40.237 に答える
0

試す:

        if (_employees < System.DateTime.Now)
        {
            EmployeeGrid.DataSource = _employees.Where(s => s.EmploymentDay.Year < 2010);
        }

追加する必要があるかもしれません

        using System.Linq;
于 2013-01-18T15:53:22.937 に答える