C# list<>根据对象的某个属性排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# list<>根据对象的某个属性排序相关的知识,希望对你有一定的参考价值。

C# list<>根据对象的某个属性排序

参考技术A 原则是必须继承IComparer<T>接口,实现int IComparer<T>.Compare(T t1, T t2)方法
例如:假定我们要把一个row列的id按照降序排列(升序以此类推).1. 先写好排序接口规则:public class ListComparerByIdDesc : IComparer<DataRow> #region IComparer< DataRow > Members public int Compare(DataRow x, DataRow y) return y[0].ToString().CompareTo(x[0].ToString()); #endregion 2. List<ListRow> list=new List<ListRow>(); //对列id名进行降序排序。list.sort(ListComparerByIdDesc ());
3. 关于CompareTo方法,如果a.CompareTo(b)若a<b 则返回-1;a=b则返回0;a>b则返回1;
参考技术B C#针对List类型以及其他集合的查询的数据操作是非常完善的,对于List对象的属性进行排序也没问题。给你两个例子做参考。 参考技术C List.OrderBy(object => object.Property) 参考技术D 先定义比较方法
http://msdn.microsoft.com/zh-cn/library/234b841s(v=vs.80).aspx

C#利用反射来判断对象是否包含某个属性的实现方法

本文实例展示了C#利用反射来判断对象是否包含某个属性的实现方法,对于C#程序设计人员来说有一定的学习借鉴价值。

具体实现代码如下:

/// <summary>
/// 利用反射来判断对象是否包含某个属性
/// </summary>
/// <param name="instance">object</param>
/// <param name="propertyName">需要判断的属性</param>
/// <returns>是否包含</returns>
public static bool ContainProperty(this object instance, string propertyName)
{
  if (instance != null && !string.IsNullOrEmpty(propertyName))
  {
 PropertyInfo _findedPropertyInfo = instance.GetType().GetProperty(propertyName);
 return (_findedPropertyInfo != null);
  }
  return false;
}

代码使用方法如下:

bool cc = _person.ContainProperty("cc");
bool aa = _person.ContainProperty("Age");

希望本文所述实例能够对大家有所帮助!

除声明外,跑步客文章均为原创,转载请以链接形式标明本文地址
  C#利用反射来判断对象是否包含某个属性的实现方法

本文地址:  http://www.paobuke.com/develop/c-develop/pbk23647.html






相关内容










以上是关于C# list<>根据对象的某个属性排序的主要内容,如果未能解决你的问题,请参考以下文章

C# 如何判断 List<T> 中包含某个属性的对象? 就是说,List<Person> 中如何判

c# List根据某个属性进行分类,变成以属性名称作为分类的多个List

c# 如何获取列表中某个属性最大或最小的元素?

JAVA list 根据对象的某个属性排序

Java8 list根据对象某个属性去重

jdk1.8中list按对象的多个属性去重,按对象的某个属性分组