c# - 拆分和组合两个不同的字符串

标签 c# linq

我正在尝试创建一个字符串,下面是我想要实现的目标:

String first = "Previous.value1 | Previous.value2";
String second = "New.value1| New.value2";

我正在尝试创建这样的最终字符串:

string final ="generate Previous.value1 cross New.value1 ? Previous.value1 cross New.value2";

但是问题是当我出现如下不匹配时:

String first = "Previous.value1 | Previous.value2";
String second = "New.value1";

然后我想要这样,因为我在第二个变量中没有Previous.Value2的匹配值:

string final ="generate Previous.value1 cross New.value1";

到目前为止,当两个字符串中的值数量相同时,我成功生成了最终字符串。

string final = "generate";
if (first.Split('|').Count() - second.Split('|').Count() == 0)
{
    int i = 0;
    foreach (var item in first.Split('|').Count())
    {
        if (i == 0)
            final = final + item + " cross " + second.Split('|')[i];
        else
            final = final +  " ? " + item + " cross " + second.Split('|')[index];
        i++;
    }
}

最佳答案

尝试此 LINQ 查询(使用 the Zip extension method ):

var zippedQry = first.Split('|').Zip(second.Split('|'),
    (f, s) => f.Trim() + " cross " + s.Trim());
string final = "generate " + String.Join(" ? ", zippedQry.ToArray());

关于c# - 拆分和组合两个不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40866055/

相关文章:

c# - 计算 linq 查询中耗时

c# - 如何分析字符串

c# - 通过检查元素的条件将列表拆分为子列表

c# - 使用 linq to excel 从多个 excel 表中读取数据 (http ://code. google.com/p/linqtoexcel/)

c# - 如何使用返回类型 ActionResult<T> 对操作进行单元测试?

c# - 根据集合B填充集合A

c# - 表达式树 : Filtered count on navigation property

带有 ascx 控件的 Javascript

c# - 如何使用 Serilog 和 AutoFac 在控制台应用程序中获取 Microsoft.Extensions.Logging<T>?

C# 序列化/继承