Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否为C#设置了比较操作?_C#_Comparison_Set - Fatal编程技术网

是否为C#设置了比较操作?

是否为C#设置了比较操作?,c#,comparison,set,C#,Comparison,Set,我有以下声明: while ((leftSide.Count-rightSide.Count!=-1)&&(leftSide.Count-rightSide.Count!= 0)) { // Do stuff here } 我想写这样的东西: while (leftSide.Count - rightSide.Count ! in [-1, 0]) { // Do stuff here } 但这是非法的语法。我想知道,有什么办法吗?有些语法我不知道 我想看

我有以下声明:

while ((leftSide.Count-rightSide.Count!=-1)&&(leftSide.Count-rightSide.Count!= 0))
{
     // Do stuff here
}
我想写这样的东西:

while (leftSide.Count - rightSide.Count ! in [-1, 0])
{
     // Do stuff here
}
但这是非法的语法。我想知道,有什么办法吗?有些语法我不知道

我想看看一组数字的计数差是否不需要再次包含语句的整个左侧

我想我可以这样做:

int x = leftSide.Count-rightSide.Count;
while ((x != -1) && (x != 0))
{
     // Do stuff here
     x = leftSide.Count-rightSide.Count;
}
但我宁愿不要


如果无法进行“设置”比较,是否有人知道原因?C#是一种功能齐全的语言,缺少这样的东西似乎很奇怪。

它不需要在语言中,因为它可以很容易地放在库中:


我在这里使用了一个数组,因为它太小了。。。但是你要考虑使用一个大的集合的<代码> HasStuts。

它不需要在语言中,因为它可以很容易地在一个库中:

.Contains
我在这里使用了一个数组,因为它太小了。。。但是,您需要考虑使用一个大集合的<代码> HasStuts。< /P>
.Contains


您可以使用
HashSet
(或任何实现ISet的工具)进行集合比较。为了你的目的,这太过分了


不过,我怀疑使用x>0对您的示例有效。

您可以使用
哈希集(或任何实现ISet的工具)进行集比较。为了你的目的,这太过分了


不过,我怀疑使用x>0对您的示例有效。

对于较大的金额,您可以声明一个
列表
,并使用
包含
方法:

List<int> values = new List<int> {-1, 0};

if(!values.Contains(x))
  //do stuff
List values=新列表{-1,0};
如果(!values.Contains(x))
//做事

对于较大的金额,您可以声明
列表
并使用
包含
方法:

List<int> values = new List<int> {-1, 0};

if(!values.Contains(x))
  //do stuff
List values=新列表{-1,0};
如果(!values.Contains(x))
//做事
使用扩展方法:

public static class DoubleInExtension
{
    public static bool IsIn(this double x, double a, double b)
    {
        return x >= a && x <= b;
    }
}
公共静态类
{
公共静态布尔码IsIn(这个双x,双a,双b)
{
返回x>=a&&x使用扩展方法:

public static class DoubleInExtension
{
    public static bool IsIn(this double x, double a, double b)
    {
        return x >= a && x <= b;
    }
}
公共静态类
{
公共静态布尔码IsIn(这个双x,双a,双b)
{

返回x>=a&&x使用扩展方法,您可以在
操作符中轻松创建一个

public static class Extensions
{
    public static Boolean In<T>(this T obj, params T[] items)
    {
        return items.Contains(obj);
    }
}

使用扩展方法,您可以在
操作符中轻松创建一个

public static class Extensions
{
    public static Boolean In<T>(this T obj, params T[] items)
    {
        return items.Contains(obj);
    }
}

再一次,你是快速抽签之王。斯基特先生打得好,打得好。好的,我可以用这个。我来自德尔福背景,这是语言的一部分。我想我只是认为这应该也是C#中的语言级功能。再一次,你是快速抽签之王。斯基特先生打得好,打得好。好,我可以用这个。我来自Delphi背景,这是语言的一部分。我想我只是假设它也应该是C#中的一个语言级功能。请看:非常好!使用
params
使其真正可用。将其添加到我的扩展方法类中,现在我的
,而
看起来是这样的:我在我的博客中写到了这一点。非常非常非常非常很好!使用
params
使其真正可用。将其添加到我的扩展方法类中,现在我的
while
看起来是这样的:我在我的博客中写到了这一点。这可能是最好的C#方法。我使用扩展方法,因为它对我来说读起来更好。(以我的delphi背景)这可能是最好的C#方法。我选择了扩展方法,因为它对我来说读起来更好。(以我的delphi背景)