http://pt.stackoverflow.com/questions/132193/ Exemplo 1

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using System.Linq;

public class Contact 
{
	public int ContactId { get; set; }
	public String Name { get; set; }	
}
					
public class Program
{
	public static void Main()
	{
		var test = new List<Contact> { 
			new Contact { ContactId = 1, Name = "Fulano" },
			new Contact { ContactId = 2, Name = "Beltrano" },
			new Contact { ContactId = 3, Name = "Ciclano" }
		};
		
		var test2 = test.FirstOrDefault(x => x.GetType().GetProperty("ContactId").GetValue(x).ToString() == 1.ToString());
		Console.WriteLine(test2.Name);
	}
}
;