Asp.net Linq从分隔文本列中提取段
我有一个数据库列,由冒号分隔,描述一个类别层次结构,如下所示: ID |类别 100 |家庭:树木:水果:苹果 我只想从文本中提取层次结构“果”的第三部分。如何使用Linq正则表达式或Linq过滤来提取该段?每次用户选择一个类别时,以这种方式提取信息是一个好主意吗 尝试以下方法: 返回一个字符串数组,该数组包含 此实例中的子字符串 由 指定的Unicode字符数组 基本上,您可以根据指定的分隔符拆分原始字符串。此方法返回一个Asp.net Linq从分隔文本列中提取段,asp.net,linq,Asp.net,Linq,我有一个数据库列,由冒号分隔,描述一个类别层次结构,如下所示: ID |类别 100 |家庭:树木:水果:苹果 我只想从文本中提取层次结构“果”的第三部分。如何使用Linq正则表达式或Linq过滤来提取该段?每次用户选择一个类别时,以这种方式提取信息是一个好主意吗 尝试以下方法: 返回一个字符串数组,该数组包含 此实例中的子字符串 由 指定的Unicode字符数组 基本上,您可以根据指定的分隔符拆分原始字符串。此方法返回一个字符串[]。下面是如何使用它的一个小示例: using System;
字符串[]
。下面是如何使用它的一个小示例:
using System;
class Program
{
static void Main()
{
String s = "Domestic:Trees:Fruit:Apples";
String[] parts = s.Split(':');
Console.WriteLine(parts[2]);
}
}
你的问题听起来像你只想要一个linq答案-所以如果你想使用linq,你可以这样做
string s = "Domestic:Trees:Fruit:Apples".Split(':')
.Select((item, index) => new {item, index})
.Where(i => i.index == 2)
.Select(i => i.item);
在LINQ中做这件事,只是拆分字符串和你需要的代码不会让你的代码更容易阅读——所以你可能只想考虑按安得烈建议的直接分裂。< /P>是对数据库进行规范化的选项吗?是的,它有可能把数据分割成它自己的类别列,如CAT1、CAT2、CAT3。这是做事情的标准方式吗?我在下面测试了Scott Lvey提供的Linq查询,大约需要7秒钟。我敢肯定,在每次点击时拆分字符串并不是大多数网站的做法。