c#字典怎么获取第一个键值
Dictionary<string, int> dictionary = new Dictionary<string, int>(); dictionary.Add("A1", 123); dictionary.Add("A2", 456); KeyValuePair<string,int> kvp=dictionary.FirstOrDefault();// 获取第一个 Console.WriteLine("Key={0} Value={1}",kvp.Key,kvp.Value); Console.WriteLine(dictionary.Keys.First());
public class Car { public long ID { get; set; } public string Name { get; set; } public string OtherName { get; set; } }
static void Main(string[] args) { List<Car> cars = new List<Car>(); cars.Add(new Car() { ID = 1, Name = "红旗", OtherName = "hq1" }); cars.Add(new Car() { ID = 2, Name = "奔驰", OtherName = "bc1" }); cars.Add(new Car() { ID = 3, Name = "宝马", OtherName = "bm1" }); cars.Add(new Car() { ID = 4, Name = "奔驰", OtherName = "bc2" }); cars.Add(new Car() { ID = 5, Name = "宝马", OtherName = "bm2" }); //同名 var carSame = cars.GroupBy(x => x.Name).Where(x => x.Count() > 1).ToList(); foreach (var item in carSame) { Console.WriteLine(item.Key); } Console.WriteLine("---*---"); var carSameArr = cars.GroupBy(x => x.Name).Where(x => x.Count() > 1).Select(i => i.Key).ToArray(); foreach (string car in carSameArr) { Console.WriteLine(car); } Console.WriteLine("---*---"); var carDict = cars.GroupBy(x => x.Name).ToDictionary(x => x.Key, x => x.ToList()); //以下是输出: foreach (KeyValuePair<string, List<Car>> pair in carDict) { Console.WriteLine(pair.Key); pair.Value.ForEach(x => Console.WriteLine(@"ID={0}, Name='{1}',OtherName='{2}'", x.ID, x.Name, x.OtherName)); Console.WriteLine(); } Console.ReadKey(); }
字典按value排序
Dictionary<string, int> dic = new Dictionary<string, int>(); dic.Add("小明", 80); dic.Add("小李", 90); dic.Add("小王", 59); var list = dic.OrderBy(s => s.Value);
List排序
List 排序
Sort
OrderBy
参考: