如何在泛型列表中过滤两个值
本文关键字:两个 过滤 泛型 列表 | 更新日期: 2023-09-27 18:12:23
我不知道这个问题用什么标题更好。如何从通用列表中使用两个数字之间的比较获得数据?使用Linq或其他有效的方法。
例如:我有一个类数据库通用列表:
gems.Add (new gem ("A", 0, 15, 1));
gems.Add (new gem ("B", 16, 46, 2));
gems.Add (new gem ("C", 47, 107, 3));
gems.Add (new gem ("D", 108, 228, 4));
With parameter (Code, time1, time2, gemspent)
我想要的是选择一个gemspend或代码之间的两个数字从gems通用列表
//------------------------------------------------------------------------------------------------------------------------------------------------------//
示例:
当我输入5 =>这将得到列表中的"A"(这个5>= 0 &&& lt; =这是在A范围内)
当我输入16 =>这将得到列表中的"B"(这个16是>= 16 &&<= 46 This within B range)
//------------------------------------------------------------------------------------------------------------------------------------------------------//
迄今为止我所做的努力:
Gem = gDatabase.gems.Where (j => {return j.time1 >= 5 && j.time2 <= 5; }).Select (j => j.gemspent).Sum();
return 0;
Gem = gDatabase.gems.FindIndex(j => {return j.time1 >= 15 && j.time2 <= 15; });
return -1;
感谢丹尼斯
我得到了我自己的解决方案,这只是我犯的一个简单的错误。
只需更改下面的代码:
Gem = gDatabase.gems.Where (j => {return j.time1 >= 5 && j.time2 <= 5; }).Select (j => j.gemspent).Sum();
:
Gem = gDatabase.gems.Where (j => {return 5 >= j.time1 && 5 <= j.time2; }).Select (j => j.gemspent).Sum();
和
只需更改下面的代码:
Gem = gDatabase.gems.FindIndex(j => {return j.time1 >= 15 && j.time2 <= 15; });
:
Gem = gDatabase.gems.FindIndex(j => {return 5 >= j.time1 && 5 <= j.time2; });