C#linq排序结构体数组
时间: 2023-10-03 15:06:34 浏览: 97
你可以使用LINQ来对结构体数组进行排序。首先,确保你的结构体实现了`IComparable`接口,以便进行比较。然后,使用LINQ的`OrderBy`方法对数组进行排序。下面是一个示例:
```csharp
using System;
using System.Linq;
struct MyStruct : IComparable<MyStruct>
{
public int Value { get; set; }
public int CompareTo(MyStruct other)
{
return Value.CompareTo(other.Value);
}
}
class Program
{
static void Main(string[] args)
{
MyStruct[] array = new MyStruct[]
{
new MyStruct { Value = 3 },
new MyStruct { Value = 1 },
new MyStruct { Value = 2 }
};
var sortedArray = array.OrderBy(x => x.Value).ToArray();
foreach (var item in sortedArray)
{
Console.WriteLine(item.Value);
}
}
}
```
在这个示例中,我们定义了一个名为`MyStruct`的结构体,它包含一个整数属性`Value`。该结构体实现了`IComparable<MyStruct>`接口,并实现了`CompareTo`方法,以便在排序时进行比较。
在`Main`方法中,我们创建了一个包含几个`MyStruct`对象的数组`array`。使用LINQ的`OrderBy`方法对数组进行排序,并使用`ToArray`方法将结果转换为数组。
最后,我们通过循环遍历排序后的数组,并打印每个元素的值。输出将按升序显示。
希望这可以帮助到你!
阅读全文