var tags = from tag in db.File_Tag select tag; foreach (var item in tags) { if (item.TagPath==null) { string fileId = item.Id.ToString(); Guid? thisId=item.ParentId; bool istrue = true; do { var _lists = from tag in tags where tag.Id == thisId select tag; if (_lists.Count()>0) { foreach (var i in _lists) { fileId = i.Id.ToString() + "/" + fileId; thisId = i.ParentId; } } else { istrue = false; } } while (istrue); item.TagPath = fileId; } }
为什么执行到第二曾循环的
if (_lists.Count()>0) 报错,并且
_lists != null 也试过了,同样不行,刚使用LINQ TO SQL,
希望帮忙解答,
小弟再此感激不尽
改成tags.Count(x=>x.thisId)>0试下。
这个好像不行
@David.Yun: 你写错了,按照你的写法,_list.Count()这样就是了
@幻天芒: 嗯,但是执行.count() 就报错了
@幻天芒: 已经解决了。我把 tags 转为LIST 通过 list.where 去实现
@David.Yun: List的话,用属性Count就行。
if (_lists.Count>0) 这里的_lists.Count是属性吧,没有括号
if (tags.Any(m=>m.id==thisId))