编写一个通用的类,实现以下三个功能:
1、可以保存不同数据类型的数据(最大数量为100)。
2、可以通过下标访问数据。
3、提供一个函数,可以对整个数据重新排序。上面是这个类的要求。对于1,2两点,我已经实现。用泛型做到保存不同数据类型的数据。用索引器做到下标访问数据。
对于这第三点,我想不出解决方案来。大家帮忙想想解决方案,谢谢。我的理解是,我自己的类 A<int> a = new A<int>(); a[0] = 1,a[1] = 2,a[2] = 3 。 a.sort()就实现排序。想了半天,毫无思路,大家帮帮忙
1、可以保存不同数据类型的数据(最大数量为100)。
2、可以通过下标访问数据。
3、提供一个函数,可以对整个数据重新排序。上面是这个类的要求。对于1,2两点,我已经实现。用泛型做到保存不同数据类型的数据。用索引器做到下标访问数据。
对于这第三点,我想不出解决方案来。大家帮忙想想解决方案,谢谢。我的理解是,我自己的类 A<int> a = new A<int>(); a[0] = 1,a[1] = 2,a[2] = 3 。 a.sort()就实现排序。想了半天,毫无思路,大家帮帮忙
解决方案 »
- C#求助
- C# 将字符串拆分为数组,在线等
- C#有啥好书啊!
- 如何在保存txt原有数据基础上将窗体文本框内容写入txt中?
- RowFilter如何处理 中间包含使用%的过滤,即如何实现中间通配呢?
- 为什么在装载窗体时也会调用Dispose
- 基础问题: 字符串到日期的转换或判断
- linq多表更新
- c#.net 文本文件进行处理!!!!!!!(100分)
- tabcontrol里怎么阻止TabControl的换页,不是electedIndexChanged里已经换页了,再人为的把页换回去,要的是在换之前就取消
- 在bat中修改xml文件的内容
- C# 调用WIN32的SendMessage方法里面的参数都是干什么的?
lst.Sort(
delegate(string sf1, string sf2)
{
return sf1.CompareTo(sf2);
});
这个我确实也想过~~不过字符串也有字符串的比较方法。关键的问题还是在于我现在根本没法写排序,要写排序,肯定要对索引的那个数据库做比较,但是,他们的类型是泛型的,没法比较。如果要重写IComparable接口的话,肯定要写在T这个类里面,矛盾的是,T是声明泛型的类,也就是T在运行时是确定的。所以无解中~~
这个只是实现了string类,那其他类怎么办?比如说我自己定义的 student类?
Icomparer <T>接口 public static Func<T,Tkey> DynamicLambda<T, Tkey>(string propertyName)
{
ParameterExpression p = Expression.Parameter(typeof(T), "p");
Expression body = Expression.Property(p, typeof(T).GetProperty(propertyName));
var lambda = Expression.Lambda<Func<T, Tkey>>(body, p);
return lambda.Compile();
}
可以限制T为某个基类,Where T:BaseEntity,然后就可以使用BASEENTITY里面的属性进行排序了
谢谢你~~刚才问我们的技术总监也是这么说的~~以前是搞JAVA的,没接触过LINQ的东西~~看来还得进一步学习~~