Ich fühle mich wie das ist einfach, aber ich kann nicht scheinen, es herauszufinden.OrderBy IndexOf eine andere Liste
Wenn ich dieses:
public class Program
{
public static void Main()
{
TestClass test1 = new TestClass(){ID = 1, text = "STRING ONE"};
TestClass test2 = new TestClass(){ID = 2, text = "STRING TWO"};
TestClass test3 = new TestClass(){ID = 3, text = "STRING THREE"};
TestClass test4 = new TestClass(){ID = 4, text = "STRING FOUR"};
List<TestClass> lstTestClasses = new List<TestClass>();
lstTestClasses.Add(test1);
lstTestClasses.Add(test2);
lstTestClasses.Add(test3);
lstTestClasses.Add(test4);
List<string> lstCategories = new List<string>() { "STRING TWO", "STRING ONE", "STRING THREE"};
var orderStrings = lstTestClasses.OrderBy(x => lstCategories.IndexOf(x.text)).ToList();
foreach(var item in orderStrings)
{
Console.WriteLine(item.text);
}
// Output:
STRING FOUR
STRING TWO
STRING ONE
STRING THREE
}
}
public class TestClass
{
public int ID { get; set; }
public string text { get; set; }
}
Wie erhalte ich STRING FOUR
letzte und nicht erst zu kommen, da es nicht in lstCategories
enthalten?
Jede Hilfe wird geschätzt.
so was macht der '-1' mit' int.MaxValue' verwandeln sich in? –
@BviLLe_Kid '-1' ist kleiner als' 0', wenn 'IndexOf'' -1' zurückgibt, dann wird 'OrderBy' stattdessen' int.MaxValue' erhalten. – Abion47
Ich bekomme diesen Teil, ich fragte nur, was ist der Wert von "int.MaxValue"? –