c#2016. 7. 6. 13:41

Linq가 없는 시절  페이징 할려면 


private List<Data> MakePhotoList(int startCount)
{
var tempPhotoList = new List<Data>();
int maxCount = startCount + 9;
for (int i = startCount; startCount < maxCount; startCount++)
{
tempPhotoList.Add(_photoList[i]);
}
return tempPhotoList;
}


이런식으로 해야만 했다.

하지만 Linq가 있으면

_photoList.Skip(startCount).Take(9).ToList();

한줄로 끝~


'c#' 카테고리의 다른 글

사용하지 않을 메소드앞에 [Obsolete] 어트리뷰트 사용  (0) 2020.01.03
list 삭제  (0) 2019.08.02
URI Parameter 붙이기  (0) 2016.06.20
RenderTargetBitmap Memory Leak 해결  (0) 2016.04.20
Simple Uniq ID만들기  (0) 2016.04.20
Posted by 동동(이재동)
Windows Phone 72012. 1. 30. 18:05

보통 Linq는 List의 내용을 건드리지만

이처럼 StackPanel이나 GridPanel같은 컨트롤에서도 사용할수 있다.

예를 들어 StackPanel에 CheckBox를 add하고 그 체크박스의 특정 Content만을 뽑고 싶을땐 이렇게 한다.

var temp = SelectedSeatPanel.Children.OfType<CheckBox>().Where(c => c.Content.Equals((sender as CheckBox).Content)).FirstOrDefault();

 

바로 OfType<T>를 하면 되는것이다.

Where<(c as CheckBox) => ….)나

(CheckBox)c => …)이렇게 시도하는 초보가 없길 바란다.

Posted by 동동(이재동)
Windows Phone 72011. 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);
                }
            }
                }
            }
Posted by 동동(이재동)