将逗号分隔的字符串分组为范围组2维数组

特洛伊·史蒂文(TroySteven)

我有一个逗号分隔的字符串,需要将其分成可传递到SQL Server的BETWEEN语句的数组范围。

例如,说我下面有以下字符串,我需要返回相应的returnVal;

string delimited = "1,2,5,6,7,8,11,12,13,15,16,17,18,19"; 
returnVal = int[,] ranges = new int[4, 2] { { 1, 2 }, { 5, 8 }, { 11, 13 }, { 15, 19 } };

我的SQL Between语句将如下所示

WHERE (ID BETWEEN 1 AND 2) OR (ID BETWEEN 5 AND 8)  OR (ID BETWEEN 11 AND 13)  OR (ID BETWEEN 15 AND 19) 

而不是

ID IN(1,2,5,6,7,8,11,12,13,15,16,17,18,19)

我的实际定界字符串超过5000个ID,因此为了提高效率,我需要使用BETWEEN语句而不是IN语句。

使用C#做到这一点的最有效方法是什么?

生长因子

以下将解决您的问题:

如果您的int是定界字符串,则可以使用split将其转换为int数组。

var intArray = **array of integers**
var ranges = new List<List<int>>();

int? topRange = intArray[0];
int? lastId = null;
int bottomRange; 
foreach(int id in intArray)
{
    if(topRange == null)
    {
        topRange = id;
    }
    if (lastId != null && id != (lastId + 1))
    {
        bottomRange = lastId.Value;
        ranges.Add(new List<int>() { topRange.Value, bottomRange });
        topRange = id;
    }
    lastId = id;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Arduino字符串以逗号分隔为数组

如何将数组输出为逗号分隔的字符串?

如何将PHP数组值分配为逗号分隔的字符串

仅将键以逗号分隔为字符串数组,而不是值c#

将ArrayList的内容输出为逗号分隔的字符串

C将逗号分隔的字符串转换为数组

将数组转换为逗号分隔的字符串

将逗号分隔的字符串迁移到json数组

将数组转换为逗号分隔的字符串

将Ints数组转换为逗号分隔的字符串

将逗号分隔的字符串转换为数组

将逗号分隔的字符串分隔为新字符串

将2d整数数组转换为以逗号python分隔的字符串

数组以逗号分隔的字符串?

PHP数组逗号分隔的字符串

逗号分隔字符串的多维数组

根据字符是用逗号还是空格分隔,将输入字段中的字符串处理为单独的数组

通过附加串联将字符串数组转换为逗号分隔的字符串

如何将逗号分隔的字符串拆分为空字符串数组

使用逗号分隔的字符串为每一行绘制一组值

如何将逗号分隔的字符串转换为对象内的分隔数组?

将数字分隔为不同的字符串或数组

如何合并子数组的每个子数组并将其存储为逗号分隔的字符串?

分组/将字符串分成2组

用逗号分隔的字符串对值进行分组

按 n 条记录的组将行转换为逗号分隔的字符串

根据前导字符将逗号分隔的字符串解析为向量

将 Pandas Dataframe 行中的字符串处理为逗号分隔的字符

如何将嵌套的数组数组转换为逗号分隔的字符串