问题标签 [iorderedenumerable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
35 浏览

c# - 混合使用 DateTime 和 DBNull 值时的 OrderBy 会引发错误

我想订购我的“SortObject”类的列表。此类旨在通过保存在字典(名为“单元格”)中组织的任意数据来模仿DataGrid Row,其中键类似于 DataGrid 列。强制任何给定键仅与一种数据类型相关联,例如键“名称”将仅具有字符串类型的值。

我的代码(如下)实际上适用于我使用过的大多数情况:

当我尝试使用 DateTime 类型的 OrderBy 对象时会出现问题,其中一些对象未设置并且默认为“System.DBNull”。在这种情况下,调用 'sortedList.First()' 或以后对 'sortedList' 的任何引用都会引发异常。例外很简单:“对象必须是 DateTime 类型”,这似乎是 OrderBy 尝试将 DateTime 类型与 DBNull 类型进行比较的结果。

我尝试了两种到目前为止还没有奏效的解决方案:

尝试一:将 DBNull 设置为新的 DateTime。理论上这应该可行,但我不仅需要创建 DateTime 类型的对象,还需要动态创建任意类型的对象。(我还需要注意这些 SortObjects 并将它们的数据设置回 DBNull 一旦我的顺序正确;我实际上不能真正更改数据)。

尝试二:只组织 DBNull,然后只组织 DateTime,然后将它们打在一起。同样,这在理论上可能有效,但代码片段中提到的“其他工作”是广泛的,包括使用 ThenBy() 对任何键进行任意次数的重新排序。将其复杂性加倍并不是一个优雅的解决方案,我认为它是一种备份。

解决此问题的最佳方法是什么?

PS:对于OrderByDateTime,我使用的是 Microsoft .NET Framework v4.6.2

0 投票
0 回答
53 浏览

c# - Directory.EnumerateFiles(...) 不会返回任何内容

我对以下代码有疑问:

该文件夹包含具有以下格式的前缀和后缀的文本文件:prefix-suffix.txt(例如:car-Tesla Model 3.txt)。
在枚举searchPattern中设置为prefixwhich is car-在示例中。
排序由文件的内容决定,但我认为现在这并不重要。

我的问题是枚举不会返回任何内容。
是因为searchPattern应该是 100% 匹配还是我错误地使用了 LINQ 等等?

提前致谢!