目录
实现目标
结构体定义
升序排列
方法一:使用Array.Sort配合自定义比较器
方法二:使用LINQ的OrderBy
降序排列
方法一:使用Array.Sort配合自定义比较器
方法二:使用LINQ的OrderBy
实现目标
要对结构体数组按照其成员字段
的值进行排序,使用C#的内置排序方法或LINQ查询。
结构体定义
public struct ST_LungDisDetInfo
{
public int nID;
public float fScore;
};
升序排列
方法一:使用Array.Sort配合自定义比较器
using System;
public class ST_LungDisDetInfoComparer : IComparer<ST_LungDisDetInfo>
{
public int Compare(ST_LungDisDetInfo x, ST_LungDisDetInfo y)
{
return Comparer<float>.Default.Compare(x.fScore, y.fScore);
}
}
// 使用示例
ST_LungDisDetInfo[] lungDisDetInfos = ...; // 假设这是您的结构体数组
Array.Sort(lungDisDetInfos, new ST_LungDisDetInfoComparer());
// 现在,lungDisDetInfos已经按照fScore字段升序排序
方法二:使用LINQ的OrderBy
using System.Linq;
// 使用示例
ST_LungDisDetInfo[] lungDisDetInfos = ...; // 假设这是您的结构体数组
var sortedLungDisDetInfos = lungDisDetInfos.OrderBy(info => info.fScore).ToArray();
// 现在,sortedLungDisDetInfos是一个新的结构体数组,已按照fScore字段升序排序
降序排列
方法一:使用Array.Sort配合自定义比较器
using System;
public class ST_LungDisDetInfoDescendingComparer : IComparer<ST_LungDisDetInfo>
{
public int Compare(ST_LungDisDetInfo x, ST_LungDisDetInfo y)
{
return Comparer<float>.Default.Compare(y.fScore, x.fScore); // 注意y和x的顺序
}
}
// 使用示例
ST_LungDisDetInfo[] lungDisDetInfos = ...; // 假设这是您的结构体数组
Array.Sort(lungDisDetInfos, new ST_LungDisDetInfoDescendingComparer());
// 现在,lungDisDetInfos已经按照fScore字段降序排序
方法二:使用LINQ的OrderBy
using System.Linq;
// 使用示例
ST_LungDisDetInfo[] lungDisDetInfos = ...; // 假设这是您的结构体数组
var sortedLungDisDetInfos = lungDisDetInfos.OrderByDescending(info => info.fScore).ToArray();
// 现在,sortedLungDisDetInfos是一个新的结构体数组,已按照fScore字段降序排序