C# 如何翻转或反转相等检查

C# 如何翻转或反转相等检查,c#,.net,vb.net,C#,.net,Vb.net,我有一个函数,希望能够使用一个参数更改相等检查,以便对于一个版本,我提取所有等于x的项,对于另一个版本,提取所有不等于x的项 以下是我的功能: Public Function GetAllItemsByUserName(ByVal userName As String) As List(Of MyRecords) Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords Wher

我有一个函数,希望能够使用一个参数更改相等检查,以便对于一个版本,我提取所有等于x的项,对于另一个版本,提取所有不等于x的项

以下是我的功能:

Public Function GetAllItemsByUserName(ByVal userName As String) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where myRecord.Name = userName
                     Select myRecord
    Return itemsQuery.ToList
End Function
因此,我想使用一个参数来翻转等式,这样我就可以提取所有=username的记录,或者所有那些!=用户名。有没有一种方法可以在不编写函数的两个版本的情况下执行此操作?

使用异或运算符

Public Function GetAllItemsByUserName(ByVal userName As String, ByVal exclude As Boolean) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where (myRecord.Name = userName) Xor exclude
                     Select myRecord
    Return itemsQuery.ToList
End Function
使用异或运算符

Public Function GetAllItemsByUserName(ByVal userName As String, ByVal exclude As Boolean) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where (myRecord.Name = userName) Xor exclude
                     Select myRecord
    Return itemsQuery.ToList
End Function
试试这个:

Public Function GetAllItemsByUserName(ByVal userName As String, ByVal equal as Boolean) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where (myRecord.Name = userName) = equal
                     Select myRecord
    Return itemsQuery.ToList
End Function
试试这个:

Public Function GetAllItemsByUserName(ByVal userName As String, ByVal equal as Boolean) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where (myRecord.Name = userName) = equal
                     Select myRecord
    Return itemsQuery.ToList
End Function
您还可以在中使用,其中:

您还可以在中使用,其中:


另一种方法是:

Public Function GetAllItemsByUserName(ByVal userName As String, equals As Boolean) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where (equals && myRecord.Name = userName) Or (!equals && myRecord.Name != userName)
                     Select myRecord
    Return itemsQuery.ToList
End Function

另一种方法是:

Public Function GetAllItemsByUserName(ByVal userName As String, equals As Boolean) As List(Of MyRecords)
    Dim itemsQuery = From myRecord as MyRecord from _ListOfRecords
                     Where (equals && myRecord.Name = userName) Or (!equals && myRecord.Name != userName)
                     Select myRecord
    Return itemsQuery.ToList
End Function

你也要用C来做这个吗?您已经为这两种语言添加了标记,但只有用VBA编写的代码,用这两种语言编写的答案将是最好的选择您想用C也这样做吗?您已经为两种语言添加了标记,但只有用VBA编写的代码,两种语言的答案都是最优秀的谢谢,这非常适合我的情况,我已经了解了Xor运算符,实际上最终使用了Tim和Henriks答案的组合,这就是我移动accept的原因。非常感谢,这非常适合我的情况,我已经了解了Xor运算符,实际上最终使用了Tim和Henriks答案的组合,这就是为什么我移动了accept。