替换List里制定的数据

friend4343 2017-09-09 03:54:40
有一个List<A>,数据如下:ab_1,bcd_2,ac_1。现在有另一个List<B>,数据如下:abc,bc,ab,ac。我会把List<B>里的数据与List<A>里的进行匹配,匹配的时候List<A>里的数据会被拆分,拆分的条件是“_",然后会放在一个string[]里。然后再进行匹配,匹配是List<B>的数据与string[0]里的数据匹配,相同的话,就需要替代原来的数据。比如List<B>中的ab与List<A>中的ab_1匹配,那么ab_1这个数据就要更新为ab_2。上面说得是需求。现在匹配的功能已经完成,卡在替换这里不知道怎么操作了。

foreach (string resultTemp in result)
{
string[] charTemp = resultTemp.Split(separator);

if (mStr == charTemp[0])
{
替换的代码写这里
continue;
}
}

mStr就是List<B>具体的字符串,result就是List<A>
还请各位朋友帮我看看如何实现替换。有一点说明,如果If满足就只能替换,也就是说,result的Count数不能变!
...全文
1147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2017-09-10
  • 打赏
  • 举报
回复
说了半天也没看懂你要的替换规则是什么
friend4343 2017-09-10
  • 打赏
  • 举报
回复
谢谢xuzuning,的确是我自己看错了。你的代码是对的
xuzuning 2017-09-09
  • 打赏
  • 举报
回复
数据如下:ab_1,bcd_2,ac_1。 这是你自己说的
friend4343 2017-09-09
  • 打赏
  • 举报
回复
谢谢啊,但结果有个错误,bcd_2不对,因为B里没有bcd,bc!=bcd。不过看了你的代码我有思路了。
xuzuning 2017-09-09
  • 打赏
  • 举报
回复
        static void Main(string[] args)
        {
            var A = new List<string>() { "ab_1", "bcd_2", "ac_1" };
            var B = new List<string>() { "abc", "bc", "ab", "ac" };
            A = A.Select(x => { return B.Contains(x.Split('_')[0]) ? x.Split('_')[0] + '_' + (int.Parse(x.Split('_')[1]) + 1) : x; }).ToList();
            Console.WriteLine(string.Join(" ", A));
        }
  
friend4343 2017-09-09
  • 打赏
  • 举报
回复
因为List<B>里有ab,与List<A>里的ab_1中的ab匹配。所以需要把原来的1改成2。这个1其实是代表在之前的匹配中,ab这个字符串被匹配到过一次,现在又出现一次,所以要累加上去。不知道我这么解释,你是否能明白。
xuzuning 2017-09-09
  • 打赏
  • 举报
回复
那么ab_1这个数据就要更新为ab_2 不明白为何是 2
friend4343 2017-09-09
  • 打赏
  • 举报
回复
论坛的朋友们帮帮忙啊,急用呢,拜托各位啦

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧