null 値が最初の非 null 値の後、最後の非 null 値の前に表示される場合にのみ、リストから null 値を除外する必要があるという要件があります。
Product one = new Product { Name="A" Priority="1" Value=null };
Product two = new Product { Name="A" Priority="2" Value=null };
Product three = new Product { Name="A" Priority="3" Value="10" };
Product four = new Product { Name="A" Priority="4" Value=null };
Product five = new Product { Name="A" Priority="5" Value="20" };
Product six = new Product { Name="A" Priority="6" Value=null };
この例では、最初に製品のリストを優先度に基づいて並べ替え、次に最初の非 null 値 (優先度 3) と最後の非 null 値 (つまり優先度 5) をチェックして、リストを取得する必要があります。プライオリティ 3 および 5 内の null 値を持つすべての製品の。したがって、この例では、プライオリティ 4 の製品 4 のみが探しているレコードです。実際に商品ごとにグルーピングして優先度順に並べる部分までは行きましたが、その後の進め方にこだわりました
from p in Products
group p by p.Product into grp
select new
{
Product = grp.Key
Values = grp.OrderBy(x => x.Priority)
}
誰かが先に進む方法を教えてもらえますか? インデックスを使用してすべての非 null を識別し、反復して最小および最大優先度値を取得し、後で最小/最大優先度内の空白の null 値を持つすべてのレコードをクエリすることを考えています。