本人新手 请教比较两个list问题

想问一下 我现在有两个list lista listb list a读取的是记事本 listb读取的是textbox
记事本的内容是这样的 a 1

b 2
c 3
textbox内容是这样的 b 0
a 2
c 1
想通过比较两个list前半部分 如果liata 中a与listb中a 一样 那么就把listb 中的 2付给lista lista就变成 a 1 2
然后把lista 添加到excel的第三列
我写了一部分代码

 foreach (string on in listb)
        {
            string[] sArray1 = on.Replace("\t", " ").Split('_');
            string ci1 = string.Empty;
            ci1 = sArray1[0].ToString();
        foreach (string oneline in lista)
        {
            string[] sArray = oneline.Replace("\t", " ").Split(' ');
            string ci = string.Empty;
            ci = sArray[0].ToString();

                if (ci == ci1)
                {
                    DataRow r = bijiaoTab.NewRow();
                  //现在已经截取前半部分截取完了 如果相等 那么把listb里的值付给lista不知道怎么去赋值 怎么添加到lista里面
                    r[0] = 
                    bijiaoTab.Rows.Add(r);
                }
            }
        }
        DataView view1 = bijiaoTab.DefaultView;
        for (int i = 0; i < view1.Count; i++)
        {
                    //赋值到excel第三列 好像写的也有问题
            xSt.Cells[i + 1, 3] = view[i][1].ToString();
        }
                    我没金币了 真心请教 本人小白  希望大侠能帮助一下 

for循环list1,然后在循环内部判断list.Where(x=>x[0]==list1[i][0])

您能详细的说一下么 我实在不知道怎么去写

做了两部分假设,只能做参考,实际你需要按你实际做调整

 static void ListSameAdd()
        {
            List<string> listA = new List<string>();
            List<string> listB = new List<string>();
            for (var i = 0; i < listA.Count; i++)
            {
                foreach (var str in listB.Where(x => x[0] == listA[i][0]))//这里假设你的第一位是比较的
                {
                    listA[i] = string.Format("{0}{1}", listA[i], str[1]);//这里假设B的第二位是你要加上的
                }
            }
        }
 string[] l1 = File.ReadAllLines("1.txt");
string[] l2 = File.ReadAllLines("1.txt");
var query = l1.Where(x => x.Split(' ').Count() == 2).Concat(l2.Where(x => x.Split(' ').Count() == 2))
.Select(x => new {name = x.Split(' ')[0], val = x.Split(' ')[1] })
.GroupBy(x => x.name)
.Select(x => x.Key + " " + string.Join(" ", x.Select(y => y.val)));
foreach (string item in query)
Console.WriteLine(item);
 string[] l1 = File.ReadAllLines("1.txt");
string[] l2 = File.ReadAllLines("2.txt");
var query = l1.Where(x => x.Split(' ').Count() == 2).Concat(l2.Where(x => x.Split(' ').Count() == 2))
.Select(x => new {name = x.Split(' ')[0], val = x.Split(' ')[1] })
.GroupBy(x => x.name)
.Select(x => x.Key + " " + string.Join(" ", x.Select(y => y.val)));
foreach (string item in query)
Console.WriteLine(item);