我有一个要评估的文件编号列表。这个列表非常大,我不想将所有文档编号都转换为 int,因为它们也可以包含字母。这是一个数字列表示例。
1070
1071
1072
1073
1074
1075
1076
1077
1078
CO1089
CO1099
CO2000
这些数字包含在 C# 中的对象中,我运行 Linq 以返回 Range 中的对象列表。这是我的 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;
如果我的范围
从: 1
到: 10000
用户希望取回该范围内的所有数字编号事务。但是,因为我正在比较字符串,所以我没有得到任何结果。
我可以检测到我的 to 和 from 值是数字的,然后只评估带有数字的事务并使用基于它的 linq 语句(或编辑 linq 语句来进行转换和比较),但我现在关心的是性能,因为返回时列表可能会很大。
我对这里的建议持开放态度,并且知道可能有许多路径都会导致相同的结果。我最关心的是性能。请记住,我可能会对非常大的数据集执行此操作,并且我需要在合理的时间内返回结果。
提前感谢您的任何和所有建议。
~~~编辑~~~
附加信息
我正在利用的对象是 QuickBooks Online 的 Intuit IPP SDK 对象。我正在查询文档(例如发票)的直觉,并且需要对文档编号进行排序。Intuit 不在他们的服务器端执行此操作,因此我必须在我方执行此操作。根据用户为其他搜索条件输入的内容,我最终可能会将他们的所有文档都放在返回的列表中。