Linq查询替换字符串中的单词

时间:2018-07-22 13:24:52

标签: c# .net

我需要在C#中使用linq查询的一种逻辑。

输入字符串:

  

印度是英格兰,英国是印度

输出字符串:

  

英格兰是印度,印度是英国

我使用普通的foreach循环达到了上述要求,并且需要使用linq查询的逻辑。在下面找到我的foreach循环代码。

string inputString1 = "India is England and England is India";
string[] str = inputString1.Split(' ');
StringBuilder sb = new StringBuilder();

foreach (var item in str)
{
    if (item == "India")
    {
        sb.Append("England");
        sb.Append(' ');
    }
    else if(item == "England")
    {
        sb.Append("India");
        sb.Append(' ');
    }
    else
    {
        sb.Append(item);
        sb.Append(' ');
    }
}

Console.WriteLine(sb);
Console.ReadLine();

1 个答案:

答案 0 :(得分:3)

您可以简单地使用3个替换,而无需linq:

var outputString1 = inputString1.Replace("India", "<placeholder>")
                    .Replace("England", "India")
                    .Replace("<placeholder>", "England");