C# в перегрузке оператора

Кажется, чистая инерция. Где это используется, все слишком заняты для изучения IDL или numpy в достаточных деталях для переключения, и не хотят переписывать хорошие рабочие программы. К счастью это не строго верно, но достаточно верно в достаточном количестве мест, что Matlab будет около долгого времени. Как Фортран (в активном использовании, где я работаю!)

7
задан Pop Catalin 4 November 2009 в 11:03
поделиться

6 ответов

Я обычно пишу Метод расширения следующим образом:

public static bool In<T>(this T source, params T[] list)
{
  if(null==source) throw new ArgumentNullException("source");
  return list.Contains(source);
}

Который можно использовать следующим образом:

if(x.In(1,6,9,11))
{
      // do something....
}
18
ответ дан 6 December 2019 в 05:49
поделиться
    public static bool In<T>(this T X, params T[] list)
    {
        foreach (var item in list)
        {
            if (X.Equals(item))
                return true;
        }
        return false;
    }
1
ответ дан 6 December 2019 в 05:49
поделиться

Попробуйте следующее

if ( (new []{1,2,33,4,-5,61}).Any(i => x == i) ) {
  ...
}
13
ответ дан 6 December 2019 в 05:49
поделиться
    bool In<T>(T num, params int args)
    {
        return (new List<T>(args)).Contains(num);
    }
0
ответ дан 6 December 2019 в 05:49
поделиться

Учитывая, что x - это int, вы можете написать такой метод расширения:

public static bool In(this int i, params int[] values){
    foreach(int v in values) {
        if (i == v) {
            return true;
        }
    }
    return false;
}
0
ответ дан 6 December 2019 в 05:49
поделиться
   string[] possible = new string[3] { 1, 2, 3);

   if (possible.Contains(x)) { ...
0
ответ дан 6 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: