評価する書類番号のリストがあります。このリストは非常に大きく、文字を含めることもできるため、すべてのドキュメント番号をintにキャストすることは避けたいと思います。これが数字のサンプルリストです。
1070
1071
1072
1073
1074
1075
1076
1077
1078
CO1089
CO1099
CO2000
これらの番号はC#のオブジェクトに含まれており、Linqを実行して範囲内のオブジェクトのリストを返します。これが私のlinqコードです。
results = from row in MyObjectList.AsQueryable<MyObject>()
where String.Compare(row.Header.DocNumber, _sDocumentStartNumber) >= 0
&& String.Compare(row.Header.DocNumber, _sDocumentEndNumber) <= 0
select row;
From: 1
To: 10000の範囲がある場合
ユーザーは、その範囲内のすべての数値トランザクションを取り戻すことを期待します。ただし、文字列を比較しているため、結果が返されません。
toとfromの値が数値であることを検出し、数値のあるトランザクションのみを評価し、それに基づいてlinqステートメントを使用する(またはlinqステートメントを編集して変換と比較を行う)ことができましたが、この時点ではパフォーマンスに関心があります。戻るとき、リストはかなり大きくなる可能性があります。
私はここで提案を受け入れており、すべて同じ結果につながる多くの道があるかもしれないことを知っています。これに関する私の主な関心事はパフォーマンスです。非常に大きなデータセットに対してこのアクションを実行する可能性があり、妥当な時間内に結果を返す必要があることを忘れないでください。
ありとあらゆる提案を事前に感謝します。
~~~編集~~~
追加情報
私が活用しているオブジェクトは、QuickBooksOnline用のIntuitIPPSDKオブジェクトです。intuitにドキュメント(請求書など)を照会していますが、ドキュメント番号で並べ替える必要があります。Intuitはサーバー側でこれを行わないので、私は自分の側でこれを行う必要があります。ユーザーが他の検索条件に入力した内容によっては、返されたリストにすべてのドキュメントが含まれる可能性があります。