- Home /
sort list by variable in list of ints array
bit of a noob sorry for any wrong terminology i have a list of int arrays that i want to sort by one of its variables, this is how i build the list
int newInt = 0;
List<int[,,]> withIndex = new List<int[,,]();
foreach (var item in universe2Kills)
{
//[Universe][killCount][index]
int[,,] ArrayOfInts = new
int [7,universe2Kills.IndexOf(newInt),newInt];
withIndex.Add(ArrayOfInts);
newInt++;
}
and now i want to sort this withIndex list in descending order, grab the top 5 results and put them in a new list, with a normal list i would do this
List<int> sorted = new List<int>();
sorted.AddRange
(universe2Kills.OrderByDescending(p =>
p ).Take(5));
but i dont know how to do this with my withIndex list i want to use the middle variable to sort the list
universe2Kills.IndexOf(newInt)
any help appreciated, many thanks
Why make it so complicated, ins$$anonymous$$d just split it up into 3 arrays, ins$$anonymous$$d of a 3D array?
Im not completely sure but I think what your saying is my answer, all I want is a list and each item in the list holds 3 values can you elaborate please
Answer by ShadyProductions · Aug 07, 2017 at 11:09 AM
You can make an object as C# is intended for (Object orriented)
public class Universe {
// add whatever you want
public int value1;
public int value2;
public int value3;
}
in your other class:
List<Universe> withIndex = new List<Universe>();
withIndex.Add(new Universe { value1 = 2, value2 = 3, value3 = 4 });
list[0].value1 = 1; //etc
then you can do this as example:
var value1descending = withIndex.Select(p => p.value1).OrderByDescending(p => p).Take(5);
Thank you was trying to avoid this I don't know why thanks for the answer
Answer by abdulhanan11 · Aug 09, 2017 at 12:43 PM
Use a list of jagged arrays in which each jagged array consists of three elements. This will be helpful in this case...