var listOne = new string[] { "dog", "cat", "car", "apple"};
var listTwo = new string[] { "car", "apple"};
我需要的是按listTwo(如果存在)中的项目顺序订购listOne。因此,新列表将按此顺序排列;
“汽车”,“苹果”,“狗”,“猫”
我想在LINQ中这样做,并且已经尝试过了;
var newList = from l1 in listOne
join l2 in listTwo on l1 equals l2 in temp
from nl temp.DefaultIfEmpty()
select nl;
但是它返回null,因此显然我的Linq-Fu很弱。任何建议表示赞赏。
最佳答案
您需要listOne中来自listTwo的所有项目,然后是listOne中的其余项目?
var results = listTwo.Intersect(listOne).Union(listOne);
foreach (string r in results)
{
Console.WriteLine(r);
}