假設我有List<CustomObject> list
。跳過所有項目後第一個相同的編號
CustomObject
具有一個結構:
public class CustomObject
{
public int coId{get;set;}
public List<SubCustObj> subList{get;set;}
public DateTime datePublish{get;set;}
}
public class SubCustObj
{
public int Id{get;set;}
public Region rRegion{get;set;}
}
// Region : for you it's only important to know that it has regionId
如果在列表中存在CustomObject
的具有相同coId
在Region
我需要離開僅1最近datePublish
元素。換句話說,一個coId
- 一個Region
。我該怎麼做?
//list it's List<CustomObject>
var toDelete = ist.SelectMany(r =>
r.subList.Where(m => r.subList.Count() > 2)
.Select(rm => rm.rRegion.regionID));
此代碼選擇重複區域的ID,但接下來我不知道什麼TODO。
一些新的想法:我可以通過regionId對元素進行分組,然後只選擇該組中的第一個元素?
你似乎很瞭解linq,試着把它放在Distinct()中,看起來它可能會在你選擇的結尾處出現。 – DidIReallyWriteThat 2014-09-10 15:56:08
@CalvinSmith,但這只是選擇獨特的區域,而它可以更多的1區域刪除相同的ID – demo 2014-09-10 16:00:01