私はカスタムオブジェクトのIQueryableを持っており、それらのオブジェクトに対してソートを実装したいと考えています。C#orderby IQueryable 2つの異なるプロパティLinQ
public class OrgObject : Entity
{
public string sortStr { get; set; }
public int sortVal { get; set; }
//... more different properties
public virtual List<LinkedObject> links {get; set;}
}
public class LinkedObject : Entity
{
public string sortStr { get; set; }
public int sortVal { get; set; }
//... more different properties
}
問題は、OrgObjectsの一部がsortStr(またはsortVal)のために価値がないですが、それはLinkedObjectのsortStrを取るべきである:ここで私は、データベースにあるオブジェクトの簡略化した形です。 これを達成するために別のゲッターを実装しようとしましたが、LINQはそれをサポートしていません。 私は使ってみました:
OrderBy(x => x.LinkedObject.sortStr).ThenBy(y => y.sortStr)
どちらも動作しません。これをLINQで解決する方法はありますか?または他のクリーンで簡単なソリューションですか?または私は自分自身を実装する必要がありますか? ありがとうございます
*それはLinkedObjectのsortStrを取る必要があります*正確にどの 'LinkedObject'は、あなたが考えているん - あなたのモデルによると、' OrgObject'が持つことができます。 ** 0、1以上** 'LinkedObject's? –
これはカスタムオブジェクトでもあり、コードショーによく似ています。基本的に0,1またはそれ以上の値を持つことができますが、OrgObjectのsortStrおよびsortValがnullの場合、常に少なくとも1つあります。 – lupus
つまり、あなたは 'FirstOrDefault'を求めていますか? –