C#数组中找到绝对值最大的是个数

时间:2021-08-07 10:09:44
从文本文档导入了一个

字符串数组data[i]; 全是纯数值

求出其中绝对值数值最大的10个数

大家有什么高招?

8 个解决方案

#1



            int[] arr = new int[11]{1,4,2,8,-9,5,6,3,5,7,-8};
            var v = (from i in arr orderby Math.Abs(i) select i).Reverse().Take(10);
            int[] r = v.ToArray();//r是结果

#2


var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => x).Take(10);

#3


忘记绝对值了

var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => Math.Abs(x)).Take(10);

#4


引用 3 楼 karascanvas 的回复:
忘记绝对值了

var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => Math.Abs(x)).Take(10);


能稍微给个注释不。。

#5


data[]是字符串数组
data.Select(s => Convert.ToInt32(s)) 先将数组中每个元素转换为整数
.OrderByDescending(x => Math.Abs(x)) 按最大值倒序排序
.Take(10); 取集合中前10个

#6


他们用的是LINQ的方法。如果无法理解,其实你就用最简单的冒泡排序,也可以得到你需要的结果的。只需要把冒泡排序里的比较条件改一改就OK了。

#7


引用 4 楼 cooljuicy 的回复:
引用 3 楼 karascanvas 的回复:

忘记绝对值了

var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => Math.Abs(x)).Take(10);


能稍微给个注释不。。



//变成这样是不是就好理解了

int[] arr = new int[11] { 1, 4, 2, 8, -9, 5, 6, 3, 5, 7, -8 };
var v = from i in arr orderby Math.Abs(i) descending select i;  //把数组中元素按绝对值降序排赋给v
int[] r = v.Take(10).ToArray();   //再把v从序列开头取10个元素转化为数组,赋给r


#8


多谢各位~~分数不多~~给分喽

#1



            int[] arr = new int[11]{1,4,2,8,-9,5,6,3,5,7,-8};
            var v = (from i in arr orderby Math.Abs(i) select i).Reverse().Take(10);
            int[] r = v.ToArray();//r是结果

#2


var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => x).Take(10);

#3


忘记绝对值了

var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => Math.Abs(x)).Take(10);

#4


引用 3 楼 karascanvas 的回复:
忘记绝对值了

var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => Math.Abs(x)).Take(10);


能稍微给个注释不。。

#5


data[]是字符串数组
data.Select(s => Convert.ToInt32(s)) 先将数组中每个元素转换为整数
.OrderByDescending(x => Math.Abs(x)) 按最大值倒序排序
.Take(10); 取集合中前10个

#6


他们用的是LINQ的方法。如果无法理解,其实你就用最简单的冒泡排序,也可以得到你需要的结果的。只需要把冒泡排序里的比较条件改一改就OK了。

#7


引用 4 楼 cooljuicy 的回复:
引用 3 楼 karascanvas 的回复:

忘记绝对值了

var result = data.Select(s => Convert.ToInt32(s)).OrderByDescending(x => Math.Abs(x)).Take(10);


能稍微给个注释不。。



//变成这样是不是就好理解了

int[] arr = new int[11] { 1, 4, 2, 8, -9, 5, 6, 3, 5, 7, -8 };
var v = from i in arr orderby Math.Abs(i) descending select i;  //把数组中元素按绝对值降序排赋给v
int[] r = v.Take(10).ToArray();   //再把v从序列开头取10个元素转化为数组,赋给r


#8


多谢各位~~分数不多~~给分喽