本文主要是介绍C# 结构体数组内指定字段的升序、降序排列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
实现目标
结构体定义
升序排列
方法一:使用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字段降序排序
这篇关于C# 结构体数组内指定字段的升序、降序排列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!