【发布时间】:2017-09-10 09:53:46
【问题描述】:
生日,
在下面的简单代码示例中,我使用一个简单的列表在一个Employees 对象中存储多个Employee 对象。我想将 List 更改为使用 Employee.Number 作为 TKey 的 SortedList,这样 foreach 循环将始终按 Employee.Number 升序打印员工,以便Employees 类中的 Item 方法将检索一个Employee 通过它的 Employee.Number 而不是它在 List 中的索引位置。
我认为这将是微不足道的,但我似乎无法正确地使用语法来使 SortedList 从Employees 类之外可迭代......?因此,如果有人可以修改我的示例代码来给我指路,我将不胜感激。
感谢您的帮助,
马丁。
using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
clsEmployees Employees = new clsEmployees();
Employees.Add(new clsEmployee(3, "Fred"));
Employees.Add(new clsEmployee(5, "Jane"));
Employees.Add(new clsEmployee(2, "Bob"));
Employees.Add(new clsEmployee(1, "Sarah"));
foreach (clsEmployee Employee in Employees)
{
Console.WriteLine("{0} {1}", Employee.Number, Employee.Name);
}
Console.ReadLine();
}
}
public class clsEmployee
{
public int Number;
public string Name;
public clsEmployee(int SetNumber, string SetName)
{
Number = SetNumber;
Name = SetName;
}
}
public class clsEmployees : IEnumerable<clsEmployee>
{
private List<clsEmployee> EmployeeList;
public clsEmployees() { EmployeeList = new List<clsEmployee>(); }
IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); }
public IEnumerator<clsEmployee> GetEnumerator() { return EmployeeList.GetEnumerator(); }
public void Add(clsEmployee NewEmployee) { EmployeeList.Add(NewEmployee); }
public clsEmployee Item(int Index) { return EmployeeList[Index]; }
}
}
【问题讨论】:
标签: c# .net foreach iterable sortedlist