从具有最低属性的哈希集中返回对象
本文关键字:哈希 集中 返回 对象 属性 | 更新日期: 2023-09-27 17:54:40
我想从最小对象的哈希集中获得对象元素。属性值。
我可以让它返回那个值:
int minProperty = collection.Min(c => c.property);
但是我需要完整的元素或索引来获得元素。不幸的是,与列表不同,哈希集没有Find或IndexAt方法。可能是因为它不像列表那样排序。
Class MyItem
{
public int value;
public string text;
}
HashSet<MyItem> itemCollection = new HashSet<Myitem>() { new MyItem() { value = 4, text = "A"},
new MyItem(){ value = 20, text = "B"}};
MyItem lowestFind = itemCollection.//??
您可以使用OrderBy
,按value
属性按升序排序,然后获得第一项:
itemCollection.OrderBy(x => x.value).First();
如果你也想获得索引,你可以这样做:
var itemAndIndex = itemCollection
.Select({x,idx} => new { item = x, index = idx})
.OrderBy(a => a.item.value)
.First();
var item = itemAndIndex.item;
var index = itemAndIndex.index;