![](/img/trans.png)
[英]Get object from List<object> where property is null and order is the lowest
[英]How to get the property from a list of object that is a string with the lowest numeric value
說我有一個人名單:
Var people = new List<Person>();
哪里
Public class Person {
Public string ReferenceString { get; set; }
}
引用字符串是一串數字,所以我可能在我的列表中;
Var person1 = new Person { ReferenceString = "12" };
Var person2 = new Person { ReferenceString = "11" };
Var person3 = new Person { ReferenceString = "14" };
我想要做的是以某種方式取回具有最低數值的引用字符串,在本例中為“11”。 所以我猜它需要在線路的某個地方轉換成一個int,並且正在按照以下方式工作:
people.Where(x => Int32.Parse(x.ReferenceString));
不知道怎么做比較。
您需要將其轉換為int,按該值排序並取第一個(最低):
Person lowPerson = people.OrderBy(p => int.Parse(p.ReferenceString)).First();
如果您只想要最低值:
int lowest = people.Min(p => int.Parse(p.ReferenceString));
但是你應該考慮首先將它存儲為int。
ReferenceString
是字符串,您正在為其分配整數值。 既然你說你不能改變數據類型就可以了
Var person1 = new Person { ReferenceString = "12" };
Var person2 = new Person { ReferenceString = '11" };
Var person3 = new Person { ReferenceString = "14" };
在那種情況下使用
var min = people.Min(x => Convert.ToInt32(x.ReferenceString));
如果你想找出哪些pesons有最小的ReferenceString,你可以做。
var result = people.Where(x => x.ReferenceString == min.ToString());
如果它存儲數字,我會將ReferenceString
作為ReferenceInteger
。 然后,您可以使用Min方法並獲取記錄。 像這樣:
var person1 = new Person { ReferenceString = 12 };
var person2 = new Person { ReferenceString = 11 };
var person3 = new Person { ReferenceString = 14 };
var people = new List<Person>();
people.Add(person1);
people.Add(person3);
people.Add(person2);
var returnValues = people.Where(x => x.ReferenceString == people.Min(y => y.ReferenceString));
這里ReferenceString的類型是整數。 考慮相應地重命名屬性。
您可以使用MoreLinq的MinBy方法來查找具有最小值的人,而無需對所有人進行排序,如果您有多個人,則效率低下。
Person lowPerson = people.MinBy(p => int.Parse(p.ReferenceString));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.