Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C#
Hi,
I have a dictionary collection where I stored name and value.
For instance i have 500 records stored in that collection just like below-
Dictionary<string,int> dict=new Dictionary<string,int>();
dict.add("A",1);
dict.add("B",2);
--
dict.add("AAB",500);
I have a method name GetData(int PageNumber,Dictionary<string,int>() myDictionary)
it takes 2 aurguments.
First i will pass page number,and second i have collection.
 
I want to achieve, if i pass page number 1 then dictionary collection maintain only 1-100 key value pair.
If i passed 2 then dictionary collection maintain only 101-200 key value pair.
And keep going such fashion. means i want to create it dynamic approach
Any approach is greatly appreciated!
 

Below are my code which i have implemented, but it is static i want it dynamic-
public Dictionary<string, int> CreateCollection()
        {
            dictionary.Add("A", 1);
            dictionary.Add("B", 2);
            dictionary.Add("C", 3);
            dictionary.Add("D", 4);
            dictionary.Add("E", 5);
            dictionary.Add("F", 6);
            dictionary.Add("G", 7);
            dictionary.Add("H", 8);
            dictionary.Add("I", 9);
            dictionary.Add("J", 10);
 
            return dictionary;
        }
 
        public void getdata(int pageNo,object myDictionary)
        {
            Dictionary<string, int> KeyValuePair = ((Dictionary<string, int>)myDictionary);
            if (pageNo == 1)// pageNo is the Datagrid Pager index in this case....
            {
                foreach (KeyValuePair<string, int> kvp in KeyValuePair.Take(5))
                {
                    Response.Write("Key " + kvp.Key);
                    Response.Write("Value "+kvp.Value);
                }
            }
        }
 
        protected void GetData_Click(object sender, EventArgs e)
        {
            getdata(1, this.CreateCollection());
        }
Posted 29-Jan-13 3:36am
Edited 29-Jan-13 3:48am
v2

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Please change your code like below
 
 static void Main(string[] args)
        {
 
            var getData = GetData(2, CreateCollection());
        }
        public static Dictionary<string, int> CreateCollection()
        {
            var dictionary = new Dictionary<string, int>
                                 {
                                     {"A", 1},
                                     {"B", 2},
                                     {"C", 3},
                                     {"D", 4},
                                     {"E", 5},
                                     {"F", 6},
                                     {"G", 7},
                                     {"H", 8},
                                     {"I", 9},
                                     {"J", 10}
                                 };
 
            return dictionary;
        }
 public static List<KeyValuePair<string, int>> GetData(int pageNo, Dictionary<string, int> myDictionary)
        {
            if (pageNo == 1)
            {
               return CreateCollection().Where(x => x.Value >= 1 && x.Value <= 5).ToList();
            }
            else if (pageNo == 2)
            {
                return CreateCollection().Where(x => x.Value >= 6 && x.Value <= 10).ToList();
            }
            return null;
        }
  Permalink  
v3
Comments
JemiM at 29-Jan-13 9:26am
   
I have updated the answer
Jameel M at 4-Sep-13 3:03am
   
so you should create a Custom class.Please create it as a separate question
shruthics at 4-Sep-13 3:30am
   
yes i created custom class
Jameel M at 4-Sep-13 5:05am
   
then what's the pbm?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 OriginalGriff 7,130
1 DamithSL 5,089
2 Maciej Los 4,866
3 Sergey Alexandrovich Kryukov 4,647
4 Kornfeld Eliyahu Peter 4,409


Advertise | Privacy | Mobile
Web02 | 2.8.141223.1 | Last Updated 29 Jan 2013
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100