Mat*_*ght 2 c# datatable conditional
我有一个DataTable和一些基本的地址信息.我试图删除任何不是纽约州或宾夕法尼亚州的州.
所以,这很好用:
foreach (DataRow row in uwDataTable.Rows)
{
if (row[15].ToString() != "New York" || )
{
rowsToDelete.Add(row);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这会删除每一行:
foreach (DataRow row in uwDataTable.Rows)
{
if (row[15].ToString() != "New York" || row[15].ToString() != "Pennsylvania")
{
rowsToDelete.Add(row);
}
}
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,但无论出于何种原因,"不平等"的情况太多了.
das*_*ght 10
之所以
row[15].ToString() != "New York" || row[15].ToString() != "Pennsylvania"
Run Code Online (Sandbox Code Playgroud)
删除每一行row[15].ToString()不能同时等于两个不同的字符串,因此两个"不等于"中的至少一个将要评估true,使得整体OR评估true也是如此.
你正在寻找&&,而不是||在那种情况下:
row[15].ToString() != "New York" && row[15].ToString() != "Pennsylvania"
Run Code Online (Sandbox Code Playgroud)
这将是一个true只有当两个"不等于"来评价true,即状态不是纽约和状态不是宾夕法尼亚州.
小智 5
你想检查它是否不是Pennsylvania,如果不是New York这样你必须使用&&(AND)not ||(OR);
foreach (DataRow row in uwDataTable.Rows)
{
if ((row[15].ToString() != "New York") && (row[15].ToString() != "Pennsylvania"))
{
rowsToDelete.Add(row);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
149 次 |
| 最近记录: |