Сравнение нескольких строк с C #

Допустим, мне нужно сравнить, является ли строка x "A" , "B" или "C".

С Python я могу использовать оператор in, чтобы легко это проверить.

if x in ["A","B","C"]:
    do something

С C # я могу делать

if (String.Compare(x, "A", StringComparison.OrdinalIgnoreCase) || ...)
    do something

Может ли это быть чем-то более похожим на Python?

ДОБАВЛЕНО

Мне нужно было добавить System.Linq , чтобы использовать Contain ().

using System;
using System.Linq;
using System.Collections.Generic;

class Hello {
    public static void Main() {
        var x = "A";

        var strings = new List<string> {"a", "B", "C"};
        if (strings.Contains(x, StringComparer.OrdinalIgnoreCase)) {
            Console.WriteLine("hello");
        }
    }
}

или

using System;
using System.Linq;
using System.Collections.Generic;

static class Hello {
    public static bool In(this string source, params string[] list)
    {
        if (null == source) throw new ArgumentNullException("source");
        return list.Contains(source, StringComparer.OrdinalIgnoreCase);
    }

    public static void Main() {
        string x = "A";

        if (x.In("a", "B", "C")) {
            Console.WriteLine("hello");
        }
    }
}
23
задан Stevoisiak supports Monica 15 August 2017 в 22:15
поделиться

1 ответ

Используйте Enumerable.Contains<T> , который является методом расширения для IEnumerable<T>:

var strings = new List<string> { "A", "B", "C" };
string x = // some string
bool contains = strings.Contains(x, StringComparer.OrdinalIgnoreCase);
if(contains) {
    // do something
}
30
ответ дан 29 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

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