By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,771 Members | 1,709 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,771 IT Pros & Developers. It's quick & easy.

How to get just unique values from a List<object>

P: n/a
Hi I have a list of type object. The object has an ID as one of the elements
and I would like to create another list that just has objects with unique IDs.
For example
in the list if I have
listofobject[0].ID = 1
listofobject[1].ID =1
listofobject[2].ID = 2
I would like new list with only
listofobject[0].ID =1
listofobject[1].ID = 2
Thanks.
--
Paul G
Software engineer.
Aug 1 '08 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Paul wrote:
Hi I have a list of type object. The object has an ID as one of the elements
and I would like to create another list that just has objects with unique IDs.
For example
in the list if I have
listofobject[0].ID = 1
listofobject[1].ID =1
listofobject[2].ID = 2
I would like new list with only
listofobject[0].ID =1
listofobject[1].ID = 2
Thanks.
If you are using VS 2008 then you can do a linq query.

LS
Aug 1 '08 #2

P: n/a
Hi thanks for the response. Still using vs2005, ended up just going through
the list and if in second list do nothing, else add to second list. The
second list is the one that ends up with just the unique values.
--
Paul G
Software engineer.
"Lloyd Sheen" wrote:
Paul wrote:
Hi I have a list of type object. The object has an ID as one of the elements
and I would like to create another list that just has objects with unique IDs.
For example
in the list if I have
listofobject[0].ID = 1
listofobject[1].ID =1
listofobject[2].ID = 2
I would like new list with only
listofobject[0].ID =1
listofobject[1].ID = 2
Thanks.
If you are using VS 2008 then you can do a linq query.

LS
Aug 1 '08 #3

P: n/a
Paul wrote:
Hi thanks for the response. Still using vs2005, ended up just going through
the list and if in second list do nothing, else add to second list. The
second list is the one that ends up with just the unique values.
That doesn't scale very well, as checking if the list contains a value
gets considerably slower as the list grows. You should use a dictionary
for checking if the values exist or not:

Dictionary<int, intunique = new Dictionary<int, int>();
foreach (int value in listofobjects) {
if (unique.ContainsKey(value)) {
// counts occurances - you can skip this if you don't want it:
unique[value]++;
} else {
unique.Add(value, 1);
}
}
--
Göran Andersson
_____
http://www.guffa.com
Aug 1 '08 #4

P: n/a
thanks for the response. I do have some code working but will give it a try.
I converted the application from a windows to a console app as I need to
schedule it to run through sql server agent. Anyhow I am getting the error
on two methods now with the console app, worked fine in the windows app. The
error is (an object reference is required for the non static field, method or
property). This occures on the line were I call a method that I am passing 4
string lists into, so looks like
method2(emails, reports, names, days).
any ideas.
--
Paul G
Software engineer.
"Göran Andersson" wrote:
Paul wrote:
Hi thanks for the response. Still using vs2005, ended up just going through
the list and if in second list do nothing, else add to second list. The
second list is the one that ends up with just the unique values.

That doesn't scale very well, as checking if the list contains a value
gets considerably slower as the list grows. You should use a dictionary
for checking if the values exist or not:

Dictionary<int, intunique = new Dictionary<int, int>();
foreach (int value in listofobjects) {
if (unique.ContainsKey(value)) {
// counts occurances - you can skip this if you don't want it:
unique[value]++;
} else {
unique.Add(value, 1);
}
}
--
Göran Andersson
_____
http://www.guffa.com
Aug 1 '08 #5

P: n/a
Got it working!
--
Paul G
Software engineer.
"Paul" wrote:
thanks for the response. I do have some code working but will give it a try.
I converted the application from a windows to a console app as I need to
schedule it to run through sql server agent. Anyhow I am getting the error
on two methods now with the console app, worked fine in the windows app. The
error is (an object reference is required for the non static field, method or
property). This occures on the line were I call a method that I am passing 4
string lists into, so looks like
method2(emails, reports, names, days).
any ideas.
--
Paul G
Software engineer.
"Göran Andersson" wrote:
Paul wrote:
Hi thanks for the response. Still using vs2005, ended up just going through
the list and if in second list do nothing, else add to second list. The
second list is the one that ends up with just the unique values.
That doesn't scale very well, as checking if the list contains a value
gets considerably slower as the list grows. You should use a dictionary
for checking if the values exist or not:

Dictionary<int, intunique = new Dictionary<int, int>();
foreach (int value in listofobjects) {
if (unique.ContainsKey(value)) {
// counts occurances - you can skip this if you don't want it:
unique[value]++;
} else {
unique.Add(value, 1);
}
}
--
Göran Andersson
_____
http://www.guffa.com
Aug 1 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.