linq转换为多个字段
我必须从数据表中获取两个字段。然后我应该检查一个。 “listIDStr”保留非唯一的userID列表。所以我必须使用“的ID是当我更新行的主键。linq转换为多个字段
List<string> listIDStr = new List<string>();
...
var sqlData = SqlDataBase.SqlGetTable("SELECT ID,UserID FROM TBL_UserT WHERE SID = " + 4663 + " AND UserID = '" + UserID + "'")
.AsEnumerable()
.ToList()
.ConvertAll(x=>x.Field<string>("UserID"))
.ToList();
List<string> Cikan = sqlData.Where(x => !listIDStr.Contains(x)).ToList();
List<string> Eklenen = listIDStr.Where(x => !sqlData.Contains(x)).ToList();
上面的代码运行的一个field.But我想‘’连同‘用户名’的ID。有没有人有一个好主意,它是如何呢?
使用匿名类型,here is the MSDN link。
var dtEnumerable = SqlDataBase.SqlGetTable("SELECT ID,UserID FROM TBL_UserT WHERE SID = " + 4663 + " AND UserID = '" + UserID + "'").AsEnumerable().ToList();
var newVariable = dtEnumerable.Select(x => new { UserID = x.Field<string>("UserID"), ID = x.Field<string>("ID") });
//Get new/old
var states = newVariable.Select(x => new { IsNew = !listIDStr.Contains(x.UserId), IsUpdate = listIDSTr.Contains(x.UserID), ID = x.UserID });
var updates = states.Where(x => x.IsUpdate).Select(x => x.UserID);
var newIds = states.Where(x => x.IsNew).Select(x => x.UserID);
//We now have access to both!
string firstUserID = newVariable.First().UserID;
string firstID = newVariable.First().ID;
谢谢你的回答。我还没有尝试。因为我不能写“Cikan”和“Eklenen”。你能写“Cikan”和“Eklenen”吗? – RockOnGom 2013-03-15 09:14:40
@zeitgeist你现在只需要一个'List
“Cikan”是外向用户。 “Eklenen”是新用户。所以我学习这个“用户是新的?”或“用户是外向的?”。 – RockOnGom 2013-03-15 09:27:20
基本上你想“项目”的数据回来到不同类型的对象,甚至是匿名的,如果你”不打算将它传递给方法外
匿名对象
var user = SqlDataBase.SqlGetTable("select Id, Name from User where ...")
.AsEnumerable()
.ToList()
.Select(x => new { x.Id, x.Name })
.SingleOrDefault();
int userId = user.Id;
string username = user.Name;
强类型对象
var user = SqlDataBase.SqlGetTable("select Id, Name from User where ...")
.AsEnumerable()
.ToList()
.Select(x => new UserViewModel { Id = x.Id, Name = x.Name })
.SingleOrDefault();
int userId = user.Id;
string username = user.Name;
对不起,这里是题外话问题,但我是一个好奇的人。 你如何访问'SqlDataBase.SqlGetTable();'?它是一个自定义类吗?我尝试粘贴它无济于事。再次为OT遗憾:) – mackwerk 2013-03-15 09:58:10
是SqlDataBase是一个类,SqlGetTable是一个函数。 :) – RockOnGom 2013-03-15 10:19:44
这是一个自定义类吗?我无法打电话来自我的VWD2010 – mackwerk 2013-03-15 10:48:38