Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当linq查询时,保持范围的更好选择是什么_C#_Asp.net_Linq_Collections_Dictionary - Fatal编程技术网

C# 当linq查询时,保持范围的更好选择是什么

C# 当linq查询时,保持范围的更好选择是什么,c#,asp.net,linq,collections,dictionary,C#,Asp.net,Linq,Collections,Dictionary,我需要保存一组整数范围,以便使用linq查询它们,如下所示: int param = 10; var matched = from item in items where param >= item.min && param <= item.max; int参数=10; var matched=来自项目中的项目 其中param>=item.min&¶m为什么不是一个简单的二维数组?这将具有最低的内存需求,并且您建议的LINQ查询将在线

我需要保存一组整数范围,以便使用linq查询它们,如下所示:

int param = 10;
var matched = from item in items 
           where param >= item.min && param <= item.max;
int参数=10;
var matched=来自项目中的项目

其中param>=item.min&¶m为什么不是一个简单的二维数组?这将具有最低的内存需求,并且您建议的LINQ查询将在线性时间内执行

伪代码:

int param = 10;
// Define min and max array indices for readability.
public const int min = 0;
public const int max = 1;

int[,] myValues = {
    { 1, 50 }, 
    { 2, 3  },
    { 5, 60 }};

var matches = 
    from  item in myValues
    where param <= item[min] && 
          param >= item[max];
int参数=10;
//为可读性定义最小和最大数组索引。
公共常数int min=0;
公共常数int max=1;
int[,]myValues={
{ 1, 50 }, 
{ 2, 3  },
{ 5, 60 }};
变量匹配=
从myValues中的项
其中参数=项目[max];

A
列表
最明显。。。有点取决于你(想)怎么做制作它们。自定义类的优点是,您可以使它成为一个对如此少量数据更有效的结构。@HenkHolterman:列表是类的一个静态字段,成员是在设计时添加的。@mohsen.d由2个
整数组成的结构数组也具有类似的低内存要求,和我建议的阵列解决方案一样高性能。但是,您在问题中明确拒绝创建一个新类,因此我不建议这样做!实际上,双数组会很好,唯一的一点是你必须做一个乘法来找到内部数组中的正确位置,但是它们就像1个记号。结构也可能有其他缺点。