将一组数从小到大排序的.net的程序
答案:2 悬赏:10 手机版
解决时间 2021-03-04 19:16
- 提问者网友:蔚蓝的太阳
- 2021-03-04 16:29
将一组数从小到大排序的.net的程序
最佳答案
- 五星知识达人网友:玩家
- 2021-03-04 17:26
private bool isReverse = false;
private void Sort(PersonalNotificationEntity [] list,string key)
{
if ( isReverse )
{
Array.Reverse(list);
isReverse = false;
}
else
{
int len = list.Length;
Type type = typeof(PersonalNotificationEntity);
object [] keys = new object[len];
for(int i = 0 ; i < len ; i++)
{
keys[i] = type.InvokeMember(key,BindingFlags.GetField ,null,list[i],null);
}
Array.Sort(keys,list);
isReverse = true;
}
}
这里使用了Array.Sort()和Array.Reverse()方法对数据进行正/反排序,变量isReverse做为反排序的标志位
方法传入了2个参数,一个是要排序的对象数组list,一个是排序关键字key,即要对象的根据哪个属性或字段来进行排序(这个值是等于对象的属性/字段名)
type.InvokeMember()方法可以得到对象实例的属性/字段值,这里使用的是字段
在得到数组中的每一个要排序的字段值后,把这个字段值数组做为Array.Sort()方法的参数传入,Sort方法就会将对象数按这个字段的值进行排序。
private void Sort(PersonalNotificationEntity [] list,string key)
{
if ( isReverse )
{
Array.Reverse(list);
isReverse = false;
}
else
{
int len = list.Length;
Type type = typeof(PersonalNotificationEntity);
object [] keys = new object[len];
for(int i = 0 ; i < len ; i++)
{
keys[i] = type.InvokeMember(key,BindingFlags.GetField ,null,list[i],null);
}
Array.Sort(keys,list);
isReverse = true;
}
}
这里使用了Array.Sort()和Array.Reverse()方法对数据进行正/反排序,变量isReverse做为反排序的标志位
方法传入了2个参数,一个是要排序的对象数组list,一个是排序关键字key,即要对象的根据哪个属性或字段来进行排序(这个值是等于对象的属性/字段名)
type.InvokeMember()方法可以得到对象实例的属性/字段值,这里使用的是字段
在得到数组中的每一个要排序的字段值后,把这个字段值数组做为Array.Sort()方法的参数传入,Sort方法就会将对象数按这个字段的值进行排序。
全部回答
- 1楼网友:野慌
- 2021-03-04 18:55
public function suiji(byval min as integer, byval max as integer) as integer
dim res as integer
randomize()
if max < min then
res = 0
else
res = int(rnd() * (max - min + 1) + min)
end if
return res
end function
private sub button8_click(byval sender as system.object, byval e as system.eventargs) handles button8.click
dim a(20), temp as integer
dim str as string = ""
for i = 1 to 20
a(i) = suiji(10, 100)
str = str & a(i) & " "
next
str = str & vbcrlf
for i = 1 to 20
for j = 1 to 20 - i
if a(j) > a(j + 1) then
temp = a(j + 1)
a(j + 1) = a(j)
a(j) = temp
end if
next j
next i
for i = 1 to 20
str = str & a(i) & " "
next
textbox6.text = str
end sub
运行结果:
61 18 89 33 17 91 25 43 13 12 81 57 13 53 75 100 67 98 73 80
12 13 13 17 18 25 33 43 53 57 61 67 73 75 80 81 89 91 98 100
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯