我有两个对象。我想根据第二个对象的 QuickLinks
对第一个对象的 QuickLinks
属性进行排序。它应该基于 QuickLinkContent.ConfigId
NavigationMenuContent nmc1 = new NavigationMenuContent();
NavigationMenuContent nmc2 = new NavigationMenuContent();
public class NavigationMenuContent
{
public int LanguageID { get; set; }
public QuickLinkContent[] QuickLinks { get; set; }
}
public class QuickLinkContent
{
public Guid ConfigID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public string Url { get; set; }
public Guid? ServiceProviderID { get; set; }
public SchemeContentFile Document { get; set; }
}
我尝试这样做:
nmc1.QuickLinks = nmc1.QuickLinks.OrderBy(q => nmc2.QuickLinks.ToList().IndexOf(q.ConfigID));
但出现错误:
Cannot convert from System.Guid to QuickLnkContent.
答案 0 :(得分:3)
我会用字典来做这件事。
CURRENT_SALE
答案 1 :(得分:1)
创建有序的配置 ID 数组:
var orderedIds = nmc2.QuickLinks.Select(ql => ql.ConfigID).ToArray();
然后用它来订购链接
nmc1.QuickLinks = nmc1.QuickLinks
.OrderBy(ql => Array.IndexOf(orderedIds, ql.ConfigID))
.ToArray();