Additional data contained in result from LINQ query

Hi,

I use the code below to query a DataTable with Linq. The intention is to select all distinct names of the column "Case Owner" and put those in a combo box. Later it should be possible to filter bu these values (data is displayed in a DataGridView).

Basically it works but I wonder why the values I see in the ComboBox are like "{ CaseOwner = John Smith }" and not like the values I see in the original table like "John Smith"?

I guess I could strip off the additional characters but I don't think this should be necessary as I must be doing something wrong here.

If it makes any difference, the data comes from an Excel html file that I read from an OleDbConnection.
private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
	// Create and open a file open dialog...
	OpenFileDialog ofd = new OpenFileDialog();
 
	string fileName = string.Empty;
 
	if (ofd.ShowDialog() == DialogResult.OK)
	{
		fileName = ofd.FileName;
 
		// Read and display the data...
		DataTable fullTable = GetDataFromExcel(fileName);
 
		mainDataGridView.DataSource = fullTable;
 
		var allSpecialists = from name in fullTable.AsEnumerable() select new { CaseOwner = name.Field<string>("Case Owner")};
 
		supportSpecialist.Items.Add("All");
		foreach (var specialist in allSpecialists.Distinct())
		{
			supportSpecialist.Items.Add(specialist);
		}
		supportSpecialist.SelectedIndex = 0;
	}
}

Open in new window

Sharp2bAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

naspinskiCommented:
That is because you are returning a IEnumerable of items that have an attribute CaseOwner which is what you really want.

I am not sure where i n your code you are doing this, but if it is the item specialist, simply do this:
foreach (var specialist in allSpecialists.Distinct())
	supportSpecialist.Items.Add(specialist.CaseOwner);

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Sharp2bAuthor Commented:
And voila...here we go!

Thanks a lot!!!

It works and then I think I also understand more what I see in the debugger as well. I focused entirely on the line:
var allSpecialists = from...
as I was thinking this was the problem.
0
Sharp2bAuthor Commented:
Just right - sorry I didn't explain that 'supportSpecialist' is the combobox but you got it anyway
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.