Windows Phone 7
[wp7] Linq.Foreach문을 잘 활용하자.
동동(이재동)
2011. 3. 15. 12:58
보통 컬렉션 안의 컬렉션 즉 List문 안에 List문 이 있으면
중첩 foreach문을 쓴다.
그러면 코드가 길어지고 깔끔해지지가 않는다.
foreach (Contact _contact in contacts)
{
_contact.ID = 0;
_contact.GroupID = 0;
_contact.CompanyID = 0;
}
이런 For문이 있을때는
contacts.ForEach(c => { c.ID = 0; c.GroupID = 0; c.CompanyID = 0; });
이렇게 바꾸면 된다.
만약 list안의 list를 보고 싶으면
그냥
_collectionBooks.Collectionbook.ToList().ForEach(i => i.Collection.ForEach( c => {CheckCollectBookSheetAllCoinCal(c);}));
이런식도 된다. ToList()뒤에 foreach 그리고 메소드를 만들어서 깔끔하게 돌렸다.
원래는 이런 for문 이였다. ㄷㄷㄷ
foreach (var item in _collectionBooks.Collectionbook)
{
foreach (var collect in item.Collection)
{
if (collect.Item != null)
{
int haveCollectionCoinCount = 0;
foreach (var coinInfo in collect.Item)
{
var isHaveCollectionCoin = CollectionCoins.Where(c => c.cid == coinInfo.cid).FirstOrDefault();
if (isHaveCollectionCoin != null)
{
haveCollectionCoinCount++;
}
}
if (haveCollectionCoinCount == collect.Item.Count)
{
SaveCompleteCollectBookSheetHistoryTime(collect.ID);
}
}
}
}