C # Сравнение нескольких строк с одинаковым значением - PullRequest
5 голосов
/ 26 декабря 2009

Пожалуйста, посмотрите на приведенный ниже случай, конечно, это будет интересно ..

если я хочу присвоить одно и то же значение нескольким объектам, я буду использовать что-то вроде этого

string1 = string2 = string3 = string 4 = "some string";

Теперь я хочу сравнить строки1, строку2, строку3 и строку4 с «someotherstring» ... вопросы - есть ли способ сделать это без написания отдельного сравнения. т.е.

string1 == "someotherstring" || string2 == "someotherstring" || string3 == "someotherstring" || string4 == "someotherstring"

Надеюсь, мне удалось объяснить этот вопрос. Пожалуйста, помогите мне с этим.

С уважением, Пареш Ратод

Ответы [ 6 ]

14 голосов
/ 26 декабря 2009

В C # 3.0 вы можете написать очень тривиальный метод расширения:

public static class StringExtensions
{
    public static bool In(this string @this, params string[] strings)
    {
        return strings.Contains(@this); 
    }
}

Тогда используйте это так:

if ("some string".In(string1, string2, string3, string4))
{
    // Do something
}
8 голосов
/ 26 декабря 2009

В вашем случае вы можете попробовать что-то вроде этого

if (new string[] { string1, string2, string3, string4 }.Contains("someotherstring"))
{
}
4 голосов
/ 26 декабря 2009

Я нахожу, что LINQ очень выразителен, и подумал бы об использовании его для этой проблемы:

new[] { string1, string2, string3, string4 }.Any(s => s == "some string")
3 голосов
/ 26 декабря 2009

Нет, в C # нет, но вы могли бы написать это так:

 (string1 == string2 && string2 == string3 && 
  string3 == string4 && string4 == "someotherstring")
1 голос
/ 26 декабря 2009

Вы можете создать функцию, упрощающую чтение кода:

compareToFirst( "someotherthing", string1, string2, string3, string4);

Если вы хотите сравнить этот список строк с последовательными «другими строками», вы можете создать объект списка «myStringList», в который вы бы добавили строку 1/2/3/4, а затем определить функцию, которая сможет написать

compare( "someotherthing", myStringList );
0 голосов
/ 26 декабря 2009

Я так не считаю. Как бы вы узнали, кто не сравнивал или не соответствовал. Не было бы никакой возможности оценить побочный эффект такого сравнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...