Cocoa Dev
Cocoa Dev

Reputation: 9541

Storing 2 columns into a List

How can I store data from 2 columns (from a database) in a List

List<string> _items = new List<string>();

Any help is appreciated

Upvotes: 17

Views: 118927

Answers (8)

I know this question is pretty old and by now you probably got your answer and have figured out what you need but I wanted to add something that might help someone in the future.

The best current answer is frankly from @csharptest.net but it has a serious performance drawback and so here is my approach a la his answer based on a suggestion to use Dictionary<TKey, TValue>

private Dictionary<string, string> _items = new Dictionary<string, string>();  

// if you need to check to see if it exists already or not
private void AddToList(string one, string two)  
{  
    if (!_items.ContainsKey(one))  
        _items.Add(one, two);  
}

// you can simplify the add further
private void AddToList(string one, string two)  
{  
    _items[one] = two;  

    // note if you try to add and it exists, it will throw exception,
    // so alternatively you can wrap it in try/catch - dealer's choice
}

Upvotes: 0

Eloulick
Eloulick

Reputation: 1

You could do this:

List<IList<string>> cols = new List<IList<string>>();

You can set how many columns you want.

cols.Add(new List<string> { "", "", "","more","more","more","more","..." });

Upvotes: -1

GPU..
GPU..

Reputation: 175

you can also make array of list

List<string> [] list= new List<String> [];
list[0]=new List<string>();
list[1]=new List<string>();

list[0].add("hello");
list[1].add("world");

Upvotes: -1

Andrew Hanlon
Andrew Hanlon

Reputation: 7421

You can either create a new class to hold the data, Or you could use the built in Tuple<> class. http://msdn.microsoft.com/en-us/library/system.tuple.aspx

Also if one of the columns contains a unique ID of some sort, you could also consider using a Dictionary<>.

Upvotes: 3

It's about how to retrieve the data from the new two columns list

List<ListTwoColumns> JobIDAndJobName = new List<ListTwoColumns>();
    for (int index = 0; index < JobIDAndJobName.Count;index++)
            {
                ListTwoColumns List = JobIDAndJobName[index];
                if (List.Text == this.cbJob.Text)
                {
                    JobID = List.ID;
                }
            }

Upvotes: 0

csharptest.net
csharptest.net

Reputation: 64248

Use a tuple struct like KeyValuePair

List<KeyValuePair<string, string>> _items = new List<KeyValuePair<string, string>>();
_items.Add(new KeyValuePair<string, string>(foo, bar));

Upvotes: 29

dasheddot
dasheddot

Reputation: 2966

I would use a class

 List<MyDataClass> _items = new List<MyDataClass>();

 public class MyDataClass
 {
     public string Value1 { get; set; }
     public string Value2 { get; set; }
 }

Upvotes: 7

Darin Dimitrov
Darin Dimitrov

Reputation: 1039190

You create a class that will represent a row with 2 columns:

public class Foo
{
    // obviously you find meaningful names of the 2 properties

    public string Column1 { get; set; } 
    public string Column2 { get; set; }
}

and then you store in a List<Foo>:

List<Foo> _items = new List<Foo>();
_items.Add(new Foo { Column1 = "bar", Column2 = "baz" });

Upvotes: 58

Related Questions