Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
Asp.net Linq从分隔文本列中提取段_Asp.net_Linq - Fatal编程技术网

Asp.net Linq从分隔文本列中提取段

Asp.net Linq从分隔文本列中提取段,asp.net,linq,Asp.net,Linq,我有一个数据库列,由冒号分隔,描述一个类别层次结构,如下所示: ID |类别 100 |家庭:树木:水果:苹果 我只想从文本中提取层次结构“果”的第三部分。如何使用Linq正则表达式或Linq过滤来提取该段?每次用户选择一个类别时,以这种方式提取信息是一个好主意吗 尝试以下方法: 返回一个字符串数组,该数组包含 此实例中的子字符串 由 指定的Unicode字符数组 基本上,您可以根据指定的分隔符拆分原始字符串。此方法返回一个字符串[]。下面是如何使用它的一个小示例: using System;

我有一个数据库列,由冒号分隔,描述一个类别层次结构,如下所示:

ID |类别

100 |家庭:树木:水果:苹果

我只想从文本中提取层次结构“果”的第三部分。如何使用Linq正则表达式或Linq过滤来提取该段?每次用户选择一个类别时,以这种方式提取信息是一个好主意吗

尝试以下方法:

返回一个字符串数组,该数组包含 此实例中的子字符串 由 指定的Unicode字符数组

基本上,您可以根据指定的分隔符拆分原始字符串。此方法返回一个
字符串[]
。下面是如何使用它的一个小示例:

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秒钟。我敢肯定,在每次点击时拆分字符串并不是大多数网站的做法。