C# 如何从具有最低数值的字符串的对象列表中获取属性

C# 如何从具有最低数值的字符串的对象列表中获取属性,c#,linq,list,C#,Linq,List,假设我有一份人员名单: Var people = new List<Person>(); 引用字符串是一个数字字符串,因此我的列表中可能有 Var person1 = new Person { ReferenceString = "12" }; Var person2 = new Person { ReferenceString = "11" }; Var person3 = new Person { ReferenceString = "14" }; 我想做的是以某种方式返回

假设我有一份人员名单:

Var people = new List<Person>();
引用字符串是一个数字字符串,因此我的列表中可能有

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));
但不确定如何进行比较。

您的代码将给出错误,因为
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));
如果您想找出哪些PESON具有最小引用字符串,您可以这样做

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));
var person1=newperson{ReferenceString=12};
var person2=新的Person{ReferenceString=11};
var person3=新的Person{ReferenceString=14};
var people=新列表();
添加(person1);
添加(person3);
添加(person2);
var returnValues=people.Where(x=>x.ReferenceString==people.Min(y=>y.ReferenceString));

此处ReferenceString的类型为integer。考虑相应地重命名属性。

您需要将其转换为int值,按该值排序,并取第一个(最低值):

如果只需要最低的值:

int lowest = people.Min(p => int.Parse(p.ReferenceString));

但是你应该首先把它存储为int。

你可以用最小值找到人,而不必对所有的人进行排序,如果你有超过几个人,效率就会很低。

Person lowPerson = people.MinBy(p => int.Parse(p.ReferenceString));

无法更改类型什么是
InboundStockTransfers
|
SourceHerd.牧群状态索引
。您的问题不完整且令人困惑!我没有更改它的选择。@匿名用户您确定字符串始终只包含整数吗?
int lowest = people.Min(p => int.Parse(p.ReferenceString));
Person lowPerson = people.MinBy(p => int.Parse(p.ReferenceString));