Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# 用于替换字符串中单词的Linq查询_C#_.net - Fatal编程技术网

C# 用于替换字符串中单词的Linq查询

C# 用于替换字符串中单词的Linq查询,c#,.net,C#,.net,我需要一个在c#中使用linq查询的逻辑 输入字符串: 印度是英国,英国是印度 输出字符串: 英国是印度,印度是英国 我使用普通的foreach循环实现了上述要求,并且需要使用linq查询逻辑。下面是我的foreach循环代码 string inputString1 = "India is England and England is India"; string[] str = inputString1.Split(' '); StringBuilder sb = new StringBuil

我需要一个在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();

您只需使用3个替换,无需linq:

var outputString1 = inputString1.Replace("India", "<placeholder>")
                    .Replace("England", "India")
                    .Replace("<placeholder>", "England");
var outputString1=inputString1.Replace(“India”和“”)
.替换(“英国”、“印度”)
.替换(“英格兰”);

您在
Select
中尝试过内联条件吗?类似于
str.Select(x=>x==“英格兰”?“印度”:(x==“印度”?“英格兰”:x))
?简单:字符串输入=“印度是英格兰,英格兰是印度”;string output=string.Join(“and”,input.Split(新字符串[]{”和“},StringSplitOptions.None).Reverse());为什么你“需要一种逻辑”?