小编G. *_* LC的帖子

检查和评估有什么区别?

我正在阅读 Microsoft Docs 上的Razor教程,并遇到了 HTML 帮助程序中使用的 lambda 表达式:

@Html.DisplayNameFor(model => model.Movie[0].Title))
Run Code Online (Sandbox Code Playgroud)

Movie 是 IList<Movie> 类型,其中 Movie 是教程中创建的类。作者指出:

DisplayNameFor HTML Helper检查lambda 表达式中引用的Title属性以确定显示名称。检查lambda 表达式而不是求值。这意味着当 Movie[0] 为 null 或为空时没有访问冲突。”

我从直觉上理解检查,但这与说有什么不同:

Console.WriteLine(Movie[0].Title)
Run Code Online (Sandbox Code Playgroud)

如果 HTML 帮助程序看到一个空列表,则没有问题,但如果控制台方法看到一个空列表,则会抛出异常。

我能猜到这是如何工作的唯一方法是在幕后有一个 try / catch 在工作。

c# asp.net lambda razor

4
推荐指数
2
解决办法
466
查看次数

How to order by letters then by numbers?

How do I order query results by alphabetic characters before ordering by numerical values in SQL-Server?

I have myTable with aColumn that I would like to query

I found this, which says to try something like:

SELECT * FROM dbo.myTable
WHERE aColumn LIKE '%val'
ORDER BY IF(aColumn RLIKE '^[a-z]', 1, 2), aColumn
Run Code Online (Sandbox Code Playgroud)

however this was for MySQL, which could be the reason why this does not work in SQL-Server. Is there anything like this for SQL-Server with the Regular …

sql sql-server

4
推荐指数
1
解决办法
3810
查看次数

从数据表中的数据列中选择唯一值?

在 SQL 中,要获取列中的DISTINCT值,我会执行以下操作:

SELECT DISTINCT ColumnName FROM TableName;
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情,但对于数据表的数据列。我知道这种方式(点击此链接)使用通常直观的方式来使用这样一个事实:我们可以检查我们所拥有的内容是否包含(whatWeWant),如果不包含,我们可以将其添加到某个容器中独特的物品。我想知道是否存在类似以下内容的内容:

var uniqueObjects = dataTable.Columns[0].Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

通过阅读Microsoft Docs,我还知道DataColumn 类没有名为 Distinct 的方法,但如果你们知道类似的方法,请告诉我。如果没有,我将采用使用 Contains 的直观方式来创建 Distinct 扩展方法。

c# datatable select unique datacolumn

4
推荐指数
1
解决办法
2952
查看次数

如何异步读取 XML 文件?

我正在编写一个用于数据后处理的 Windows 窗体应用程序。我有一个面板,允许拖放文件。XML 文件将非常大(足以减慢 UI 的速度)。因此我想异步读取文件。到目前为止,对于应用程序的这一部分,我有两种方法:

namespace myApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void DragDropPanel_DragEnter(object sender, DragEventArgs e)
        {
            // Trigger the Drag Drop Event
            e.Effect = DragDropEffects.Copy;
        }

        private async void DragDropPanel_DragDrop(object sender, DarEventArgs e)
        {
            // Identifiers used are:
            string[] filePaths = (string[])e.Data.GetData(DataFormats.FileDrop);
            string filePath = filePaths[0],
                 fileName = System.IO.Path.GetFileName(filePath);

             // Read in the file asynchronously
             XmlReader reader = XmlReader.Create(filePath);
             //reader.Settings.Async = true; // ** (SECOND ERROR) ** \\ …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous xmlreader

3
推荐指数
1
解决办法
2574
查看次数

如何选择数据表中不等于某项的所有内容?

我有一个包含几列的数据表。其中一列具有特定值,我想用它来告诉程序要么给我该行,要么告诉它我不想要该行。

我的具体情况是该列名为“状态”,并且某些内容已批准。因此,如果“状态”列中的值不是“已批准”,我想要它,请不要打扰我。

在这种情况下(但相反)我通常做的只是使用类似的东西:

myDataTable.Select("Status = 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

给我所有批准的东西。但如果我尝试用我的直觉写

myDataTable.Select("Status != 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

我明白了

Exception thrown: 'System.Data.SyntaxErrorException' in System.Data.dll
Run Code Online (Sandbox Code Playgroud)

注意:从我的调试尝试来看,唯一给我带来问题的是 != 运算符。我用 try / catch 包装该语句,异常如下:

Cannot interpret token '!' at position 8.
Run Code Online (Sandbox Code Playgroud)

所以使用该输出我找到了这个链接。但这似乎对我没有多大帮助,按照他们的建议进行尝试(我的绝望尝试):

myDataTable.Select("Status '!'= 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

或者

myDataTable.Select("Status '!=' 'APPROVED'");
Run Code Online (Sandbox Code Playgroud)

首先对我来说根本没有意义,更重要的是不起作用,这对我来说似乎是显而易见的。

c# datatable select

2
推荐指数
1
解决办法
7283
查看次数