想问一下 我现在有两个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);