Click here to Skip to main content
12,077,096 members (46,709 online)
Rate this:
 
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
Joezer BH38.4K
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 29-Jan-13 9:26am
   
I have updated the answer
Jameel M 4-Sep-13 3:03am
   
so you should create a Custom class.Please create it as a separate question
shruthics 4-Sep-13 3:30am
   
yes i created custom class
Jameel M 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
Top Experts
Last 24hrsThis month


Advertise | Privacy | Mobile
Web02 | 2.8.160212.1 | Last Updated 29 Jan 2013
Copyright © CodeProject, 1999-2016
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