C#在两个字符串中搜索重复项并将唯一值写入变量

时间:2017-05-18 12:14:44

标签: c#

文字1: %start:这是开始:%End %start:这是不同的:%End %start:这是开始2:%End 。 ; ; Ñ

文字2: %start:这是开始3:%End %start:这是开始:%End %start:这是不同的:%End 。 ; ; n

结果应该是: %start:这是开始:%End %start:这是不同的:%End %start:这是开始2:%End %start:这是开始3:%End

比较文本1和文本2,在结果中提供唯一值。两个文本中的数据始终位于标签%start和%End之间。

2 个答案:

答案 0 :(得分:0)

您可以使用In[71]: df['data'].apply(lambda x: x['humidity']) Out[71]: 0 0.62 Name: data, dtype: float64 执行此操作。只需创建两个Linq,然后使用List<string>方法加入两个List此方法会从返回集中排除重复项。。更多详情请查看Enumerable.Union

代码#1:

Union

代码#2:

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

public class Program
{
    public static void Main()
    {
        List<string> list1 =new List<string>();
        list1.Add("%start : this is start : %End");
        list1.Add("%start : this is different : %End");
        list1.Add("%start : this is start 2: %End");

        List<string> list2 =new List<string>();
        list2.Add("%start : this is start 3: %End");
        list2.Add("%start : this is start : %End");
        list2.Add("%start : this is different : %End");

        List<string> list3 = list1.Union(list2).ToList();
        foreach(string item in list3){
            Console.WriteLine(item);
        }
    }
}

请检查example in DotNetFiddle

答案 1 :(得分:0)

问题是这些都是单个字符串,包含多个%start /%结束对。有趣的是,那些是你可以忽略的红色鲱鱼。这不是真正区分你的子串值的东西。

你的导师不小心在作业中打了一个洞,让角色得到了:&#39;:&#39;值子串与开始/结束指标之间。如果您使用它来分割您的值并且丢弃结果数组中包含using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { List<string> list1 =new List<string>(); list1.Add("text 1"); list1.Add("text 2"); list1.Add("text 3"); List<string> list2 =new List<string>(); list2.Add("text 4"); list2.Add("text 1"); list2.Add("text 2"); list2.Add("text 5"); List<string> list3 = list1.Union(list2).ToList(); foreach(string item in list3){ Console.WriteLine(item); } } } 的任何字符,那么您可以在滚动输出时人为地将开始/结束对放回去。

鉴于Text 1是一个名为text1的字符串,Text 2是一个名为text2的字符串:

%

它在生产环境中有点笨拙,但在这种情况下它具有功能性。