gpt4 book ai didi

c# - C# 中的选项与 SQL 中的 'IN' 具有相同的功能?

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:48 25 4
gpt4 key购买 nike

我想在 if 条件 block 中搜索多个条件 - 就像 SQL 中的 IN 运算符一样。

public class Check{

int [] arr = {1, 2, 5, 9, 7, 11, 89};
for (int i=0; i<arr.length; i++)
{
if(arr[i]==1||arr[i]==5||arr[i]==7||arr[i]==89)
{
Console.WriteLine("The number was found.");
}
}

Is there a solution for this kind of result?

if (arr[i] in(1, 5, 7, 89)
{
Console.WriteLine("The No Is Found.");
}

最佳答案

作为一种语言,C# 中没有任何东西等同于IN。 , 不...但你可以轻松实现类似的效果。

最简单的方法可能是使用 System.LinqContains针对数组:

using System;
using System.Linq;

public class Check{

static void Main()
{
int[] candidates = {1, 2, 5, 9, 7, 11, 89};
// This is the members of the "in" clause - the
// the values you're trying to check against
int[] targets = { 1, 5, 7, 89 };
foreach (int candidate in candidates)
{
Console.WriteLine(
targets.Contains(candidate) ?
$"{candidate} is in targets" :
$"{candidate} is not in targets");
}
}
}

或者,您可以使用 HashSet<int> - 如果你有大量的目标,那会更有效率:

using System;
using System.Collections.Generic;

public class Check{

static void Main()
{
int[] candidates = {1, 2, 5, 9, 7, 11, 89};
var targets = new HashSet<int> { 1, 5, 7, 89 };
foreach (int candidate in candidates)
{
Console.WriteLine(
targets.Contains(candidate) ?
$"{candidate} is in targets" :
$"{candidate} is not in targets");
}
}
}

关于c# - C# 中的选项与 SQL 中的 'IN' 具有相同的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com