12,997,531 members (61,088 online)
Rate this:
See more: , +
Hi all,
I have an application in which i get the id's from a gridview and save it in an integer list List<int>.

```
List<int> list = new List<int>();

//Example say, if the values in my list is

list={100,100,101,124,155,114,101};

//I want my list to return only unique values as i am passing my list to a database for retrieving data.

//I want my list to return like this.

list={100,101,124,155,114};```

How can i do this.Pls help me....
Posted 9-Oct-12 23:36pm

Rate this:

Solution 4

Check this

```List<int> list = new List<int>();
list = list.Distinct().ToList();```

Now this will have 100 and 101
ajithk444 10-Oct-12 7:28am

thank U.:)it helped:)
Rate this:

Solution 3

Why not using LINQ ?

```
List<int> l = new List<int>() { 100, 100, 101, 102, 103, 102 };

var v = l.Distinct();

foreach (var item in v)
{
Debug.WriteLine(item.ToString());
}

// or

List<int> li = l.Distinct().ToList();
```

Will give you:

```100
101
102
103```
v2
TheCoolCoder 10-Oct-12 6:12am

Was abt to post this and thought about refreshing :-)..
Andy411 10-Oct-12 6:18am

:-)
ajithk444 10-Oct-12 7:28am

thank U.:)it helped:)
Rate this:

Solution 1

Either you can write your own algorithm or if you are using .Net 3.5 and above use HasSet.

Once you have your values in list, use following code

`HashSet<int> uniqueNumbers = new HashSet<int>(list);</int></int>`

This will give a HashSet with unique number, in your case list of 5 values only.
ajithk444 10-Oct-12 7:28am

thank U.:)it helped:)
Milind Thakkar 10-Oct-12 8:42am

Rate this:

Solution 2

A possibility for your own function (as said in solution 1)

You can start copying the first element to the second list and then delete it with `RemoveAt`, then use the `Find`command with that element. If found... remove it and try to find it another time, If not found start from the beggining with the next item to be copied to the second list.

You can use the `FindAll` and `RemoveAll` as well

Have a look
http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx[^]
v3
ajithk444 10-Oct-12 7:28am

thank U.:)it helped:)
Nelek 11-Oct-12 7:06am

You are welcome. :)
Rate this:

Solution 5

THIS IS HOW I DID in a big complicated manner though.Anyway thanks for all ur feedback.It helped a lot.

```public List<int> GetEmpID() //Get unique ID's in a list
{
List<int> list = new List<int>();
List<int> Newlist = new List<int>();
foreach (GridViewRow gvr in this.gridBWAProject.Rows)
{
if (((System.Web.UI.WebControls.CheckBox)gvr.FindControl("chkSelect")).Checked == true)
{
}
}

IEnumerable<int> distinctlist = list.Distinct();
foreach (int id in distinctlist)
{
}
return Newlist;```
v3
Milind Thakkar 10-Oct-12 8:43am

You can replace IEnumerable<int> distinctlist = list.Distinct(); by newList = IEnumerable<int> distinctlist = list.Distinct().ToList();
Milind Thakkar 10-Oct-12 8:43am

That will save you a foreach loop.

Top Experts
Last 24hrsThis month
 ppolymorphe 345 OriginalGriff 280 RickZeeland 265 F-ES Sitecore 130 Karthik Bangalore 95
 OriginalGriff 4,442 ppolymorphe 2,242 Kornfeld Eliyahu Peter 1,973 RickZeeland 1,901 Richard Deeming 1,543