小言_互联网的博客

C#练习题答案: 排序值和索引数组【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战

345人阅读  评论(0)

排序值和索引数组【难度:1级】:

答案1:

using System;
using System.Linq;

public class Kata
{
  public static int[] SortByValueAndIndex(int[] array)
  {
    int i = 1;
    return array.OrderBy(n => n * i++).ToArray();
  }
}

答案2:

using System;
using System.Collections.Generic;
using System.Linq;

public class Kata
{
    public static int[] SortByValueAndIndex(int[] array)
    {
        var i = 1;
        return array.OrderBy(x => x * i++).ToArray();
    }
}

答案3:

using System;

public class Kata
{
  public static int[] SortByValueAndIndex(int[] array)
  {
    int[] keys = new int[array.Length];
    for (int i = 0; i < array.Length; i++) keys[i] = array[i] * (i + 1);
    Array.Sort(keys, array);
    return array;
  }
}

答案4:

using System;
using System.Linq;

public class Kata
{
  public static int[] SortByValueAndIndex(int[] array)
  {
    return array.Select((a,i) => new int[] { a, a * (i+1)}).OrderBy(a => a[1]).Select(a => a[0]).ToArray();
  }
}

答案5:

using System.Collections.Generic;
using System.Linq;

public class Kata
{
  public static int[] SortByValueAndIndex(int[] array)
  {
    var result = new List<Weights>();
            for (var i = 0; i < array.Length; i++)
            {
                var weight = new Weights() {original = array[i], weightOfSum = array[i] * (i + 1)};
                result.Add(weight);
            }
            return result.OrderBy(x => x.weightOfSum).Select(x => x.original).ToArray();
  }
  public class Weights
    {
        public int original { get; set; }
        public int weightOfSum { get; set; }
    }
}

答案6:

using System;
using System.Collections.Generic;
using System.Linq;

public class Kata
{
  public static int[] SortByValueAndIndex(int[] array)
  {
    int i = 1;
    return array.OrderBy(x => x * (i++)).ToArray();
  }
}

答案7:

using System;
using System.Linq;
public class Kata
{
  public static int[] SortByValueAndIndex(int[] array)
  {
  int i=1;
    return array.OrderBy(p => p*i++).ToArray();
  }
}

答案8:

using System.Collections.Generic;
using System.Linq;

internal struct MyClass
{
    public int Key;
    public int Value;

    public MyClass(int key, int value)
    {
        Key = key;
        Value = value;
    }
}
public class Kata
{
    public static int[] SortByValueAndIndex(int[] array)
    {
        var list = new List<MyClass>();
        var count = 0;

        foreach (var val in array)
        {
            count++;
            list.Add(new MyClass(val, count * val));
        }

        return list.OrderBy(pair => pair.Value).Select(pair => pair.Key).ToArray();
    }
}

答案9:

using System;
using System.Collections.Generic;
using System.Linq;

public class Kata
{
    public static int[] SortByValueAndIndex(int[] array)
    {
        var list = new List<Tuple<int, int>>();
        var count = 0;

        foreach (var val in array)
        {
            count++;
            list.Add(Tuple.Create(val, count * val));
        }

        return list.OrderBy(pair => pair.Item2).Select(pair => pair.Item1).ToArray();
    }
}

答案10:

using System.Linq;

public class Kata {
    public static int[] SortByValueAndIndex( int[] array ) {
        return
            array.Select( ( n, i ) => new {N = n, O = n*( i + 1 )} ).OrderBy( _ => _.O ).Select( _ => _.N ).ToArray( );
    }
}




转载:https://blog.csdn.net/weixin_45444821/article/details/101975258
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场