我正在阅读 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 在工作。
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 中,要获取列中的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 扩展方法。
我正在编写一个用于数据后处理的 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) 我有一个包含几列的数据表。其中一列具有特定值,我想用它来告诉程序要么给我该行,要么告诉它我不想要该行。
我的具体情况是该列名为“状态”,并且某些内容已批准。因此,如果“状态”列中的值不是“已批准”,我想要它,请不要打扰我。
在这种情况下(但相反)我通常做的只是使用类似的东西:
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# ×4
datatable ×2
select ×2
asp.net ×1
asynchronous ×1
datacolumn ×1
lambda ×1
razor ×1
sql ×1
sql-server ×1
unique ×1
xmlreader ×1