私は列、次にRunNo
列でソートされたオブジェクトのリスト(RunSummary
)を持っています。しかし、UniquId
オブジェクトのタイプはString
です。 UniqueId
で並べ替えて、Integer
オブジェクト(1,10,11,3ではなく1,3,10,11)にしたいと思います。ここに私のコードです:LINQで整数として文字列リストをソートC#
public List<RunSummary> GetRunSummariesForUniqueIds(List<String> uniqueIds)
{
using (var context = new ELSORegistryEntities())
{
context.Configuration.ProxyCreationEnabled = false;
List<RunSummary> runSummaries = context.RunSummaries
.Where(param => uniqueIds.Contains(param.UniqueId))
.OrderBy(param => param.UniqueId)
.ThenBy(param => param.RunNo)
.ToList<RunSummary>);
return runSummaries;
}
}
私は
List<RunSummary> runSummaries = context.RunSummaries
.Where(param => uniqueIds.Contains(param.UniqueId))
.OrderBy(param => Convert.ToInt32(param.UniqueId))
.ThenBy(param => param.RunNo)
.ToList<RunSummary>();
で試してみましたが、それは動作しません。 LINQでソートするにはどうすればいいですか?
後に注文する必要があり、クエリ内Convert.ToInt32を使用することはできませんか?あなたは例外を取得していますか?または、あなたが間違った結果を得た場合、それは何ですか? – juharr
@juharr 'DBContext'クエリの中で' int.Parse(param.UniqueId) 'のような関数を使うことはできませんでしたか? –
私は、Convert.ToInt32をLINQクエリでDBに使うことはできないと思うが、何が間違っているのか答えを与える。 – W92