什么是TSQL';s”;IN”;操作人员有什么方法可以检查c#中的X、Y、Z中是否存在X

本文关键字:什么 检查 中的 存在 是否 TSQL IN 方法 操作 | 更新日期: 2023-09-27 18:22:38

有什么方法可以检查c#中的X,Y,Z中是否存在X?例如:

X=5;

我想检查X的值是否与任何逗号分隔的值匹配。。

if(x in (2,5,12,14)

什么是TSQL';s”;IN”;操作人员有什么方法可以检查c#中的X、Y、Z中是否存在X

new int[] { 2,5,12,14}.Contains(x);
List<int> list = new List<int> { 1, 2, 3, 4, 5 };
list.Contains(5);

您可以使用.Contains方法。例如listItems。包含(x)

C#中没有in运算符,但您可以实现一个扩展方法来提高代码的可读性。

public static class Ext
{
    public static bool In<T>(this T val, params T[] values) where T : struct
    {
        return values.Contains(val);
    }
}
//usage: var exists = num.In(numbers);

Linq.Contains()你在搜索什么

// Create List with three elements.
var list = new List<string>();
list.Add("cat");
list.Add("dog");
list.Add("moth");
// Search for this element.
if (list.Contains("dog"))
{
    Console.WriteLine("dog was found");
}

有两种方法Linq.Contains()方法和一种扩展Linq.Contains<int>

        var list = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        // Use extension method.
        var stp = new Stopwatch();
        stp.Start();
        bool a = list.Contains<int>(7);
        stp.Stop();
        Console.WriteLine("Time in extenstion method {0}", stp.Elapsed);
        stp.Restart();
        // Use instance method.
        bool b = list.Contains(7);
        stp.Stop();
        Console.WriteLine("Time in normal method {0}", stp.Elapsed);

性能基准:特定于List的版本,即列表类型定义中的list.Contains(7);,速度更快。我用两个Contains方法测试了相同的List。