Cod*_*ray 24
你没有.根据定义,a HashSet未排序.
如果你想要一个排序的哈希集,那么你应该使用一个SortedSet.它所公开的方法本质上是由它们提供的方法的超集HashSet,包括对其内容进行排序的能力.
eri*_*osg 14
您可以使用该OrderBy方法,IComparer(即http://msdn.microsoft.com/en-us/library/bb549422.aspx)或使用您的比较器内联一些lambda(我通常使用谓词进行比较,如下所示) ).
按链接查看:
class Pet
{
public string Name { get; set; }
public int Age { get; set; }
}
public static void OrderByEx1()
{
Pet[] pets = { new Pet { Name="Barley", Age=8 },
new Pet { Name="Boots", Age=4 },
new Pet { Name="Whiskers", Age=1 } };
IEnumerable<Pet> query = pets.OrderBy(pet => pet.Age);
foreach (Pet pet in query)
{
Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
}
}
/*
This code produces the following output:
Whiskers - 1
Boots - 4
Barley - 8
*/
Run Code Online (Sandbox Code Playgroud)
阅读更多:http://msdn.microsoft.com/en-us/library/bb534966.aspx
小智 10
HashSet <string>未按设计排序.如果你想对项目进行一次排序(〜不经常),那么你可以使用OrderBy LINQ方法(因为HashSet <string>实现IEnumerable <string>):hs.OrderBy(s => s);
如果您需要排序的hashset,那么您可以使用SortedDictionary类 - 只需使用一些虚拟类型(即bool)作为TValue泛型参数.
该SortedSet的类不在.NET 3.5可用.
| 归档时间: |
|
| 查看次数: |
25845 次 |
| 最近记录: |