首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择C#中字符串数组中的前5个字符

选择C#中字符串数组中的前5个字符
EN

Stack Overflow用户
提问于 2012-07-21 16:18:12
回答 3查看 305关注 0票数 4

我想从字符串数组列表中选择前5个字符,

代码语言:javascript
复制
List<string> strDetailIDList = new List<string>();
foreach(DataRow row in ds.Tables[0].Rows)
{
   strDetailIDList.Add(row.ToString());
}              
str=strDetailIDList.ToArray();

现在字符串包含如下列表

代码语言:javascript
复制
FOCMM001
FOCMM002
FOCMM003
FOCMM004
FOCMM005
FOCMM006
FOCSM013
FOCSM014
FOCSM015
FOCSM016
FOCSM017
FOCSM018
FOCSM019
SC1LN001
SC1LN002
SC1LN003
SC1LN004
SC1LN005
SC1LN006 

从该列表中,我要选择前5个字符,并计算FOCMM-6、FOCSM-6、SC!LN-6。请给我一些建议。

EN

回答 3

Stack Overflow用户

发布于 2012-07-21 16:20:38

听起来你想要这样的东西:

代码语言:javascript
复制
var counts = list.GroupBy(x => x.Substring(0, 5))
                 .Select(g => new { Prefix = g.Key, Count = g.Count() });
foreach (var value in counts)
{
    Console.WriteLine("{0} - {1}", value.Prefix, value.Count);
}
票数 7
EN

Stack Overflow用户

发布于 2012-07-21 16:42:53

如果您想在标签中显示,那么只需使用以下命令更改ConsoleWriteLine:

代码语言:javascript
复制
foreach (var value in counts)
{
    label1.Text +=  string.Format(("{0} - {1}\r\n", value.Prefix, value.Count));
}

如果您只想在一行中显示,请从上面的代码行中删除"\r\n“

票数 0
EN

Stack Overflow用户

发布于 2012-07-21 19:52:23

好吧,也许这能帮到你。它只有在列表被排序的情况下才起作用,因为它似乎是按照提供的示例排序的。

代码语言:javascript
复制
int Count = 0;
List<String> Result = new List<String>();
String LastString= "";
for(int loop=0;loop<strDetailIDList.Count; loop++)
{
    if(LastString!=strDetailIDList[loop].Substring(5))
    {
        if(LastString!="") 
        {
             Result.Add(LastString+"-"+Count);
        }
        LastString=strDetailIDList[loop].Substring(5);
        Count = 1;
    }
    else Count++;
}

现在,"Result“列表中有了您需要在标签上显示的文本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11590617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档