62,233
社区成员




最后你是怎么写的?
直接建一个类(省id,省名称,市id,市名称),然后把前两个的数据都放到这个list里,最后用FirstOrDefault根据id取到model,model里面就包含省和市的名称,这样就完事了吧
这个list搞完后大概是这些数据
省id 省名称 市id 市名称
1 湖北 1 仙桃
1 湖北 2 武汉
然后循环里面
var model = 上面搞好的list.FirstOrDefault(a=>a.省id==省id && a.市id==市id);
然后从model里面去省名称和市名称
这个地方应该也可以直接用left join之类的来代替自己遍历,具体的话,就得边写边调试一下了
var txt1 = System.IO.File.ReadAllLines(@"C:\Users\Yong\Desktop\1.txt");
var txt2 = System.IO.File.ReadAllLines(@"C:\Users\Yong\Desktop\2.txt");
var txt3 = System.IO.File.ReadAllLines(@"C:\Users\Yong\Desktop\3.txt");
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("campaignId");
dt.Columns.Add("campaignName");
foreach (var item in txt1)
{
if (item != txt1.First())
{
var tarr = item.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
dt.Rows.Add(tarr);
}
}
System.Data.DataTable dt1 = new System.Data.DataTable();
dt1.Columns.Add("adgroupId");
dt1.Columns.Add("adgroupName");
foreach (var item in txt2)
{
if (item != txt2.First())
{
var tarr = item.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
dt1.Rows.Add(tarr);
}
}
System.Data.DataTable dt2 = new System.Data.DataTable();
dt2.Columns.Add("campaignId");
dt2.Columns.Add("adgroupId");
dt2.Columns.Add("keyword");
foreach (var item in txt3)
{
if (item != txt3.First())
{
var tarr = item.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
dt2.Rows.Add(tarr);
}
}
var t1 = dt.AsEnumerable();
var t2 = dt1.AsEnumerable();
var t3 = dt2.AsEnumerable();
var query1 =
from l1 in t1
from l2 in t2
from l3 in t3
where l1.Field<String>("campaignId") == l3.Field<String>("campaignId") && l2.Field<String>("adgroupId") == l3.Field<String>("adgroupId")
select new
{
adgroupName = l2.Field<String>("adgroupName"),
campaignName = l1.Field<String>("campaignName"),
keyword = l3.Field<String>("keyword"),
};
DataTable dtNew = new DataTable();
dtNew.Columns.Add("adgroupName");
dtNew.Columns.Add("campaignName");
dtNew.Columns.Add("keyword");
foreach (var obj in query1)
{
dtNew.Rows.Add(obj.adgroupName, obj.campaignName, obj.keyword);
}