专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C#

文本数据处理解决方法

发布时间:2011-06-21 11:33:04 文章来源:www.iduyao.cn 采编人员:星星草
文本数据处理
求教 , 我想处理一个如下格式的文本文件:

a00001,2
a00001,-1
b00001,1
b00001,1

获得如下结果:

a00001,1
b00001,2

即: 最后一个逗号位后面的数字代表数量 , 前面一个字串代表物品 , 按行存储, 我想将同一个物品根据数量汇总在一行...

这个如何实现呢...

------解决方案--------------------
C# code
s = @"a00001,2
a00001,-1
b00001,1
b00001,1
";
var query = from x in s.Split(new char[] { 'r', 'n' })
                       .Select(x => new { id = x.split(',')[0], value = Convert.ToInt32(x.split(',')[1]) })
           group x by x.id into g
           select new { id = g.Key, value = g.Select(x => x.value).Sum() };
foreach (var item in query)
{
    Console.WriteLine(item.id + "," + item.value);
}

------解决方案--------------------
C# code

        public static List<String[]> ReadTxt(string filePathName)
        {
            List<String[]> ls = new List<String[]>();
            StreamReader fileReader=new   StreamReader(filePathName); 
            string strLine="";
            while (strLine != null)
            {
                strLine = fileReader.ReadLine();
                if (strLine != null && strLine.Length>0)
                {
                    ls.Add(strLine.Split(','));
                    //Debug.WriteLine(strLine);
                }
            }
            fileReader.Close();
            return ls;
        }

------解决方案--------------------
string s = @"a00001,2
a00001,-1
b00001,1
b00001,1";
var query = from x in s.Split(new string[] { "rn" }, StringSplitOptions.None)
.Select(x => new { id = x.Split(',')[0].Trim(), value = Convert.ToInt32(x.Split(',')[1]) })
group x by x.id into g
select new { id = g.Key, value = g.Select(x => x.value).Sum() }; 
foreach (var item in query) 

Console.WriteLine(item.id + "," + item.value); 
}
------解决方案--------------------
探讨
引用:

s = @"a00001,2
a00001,-1
b00001,1
b00001,1
";
var query = from x in s.Split(new char[] { 'r', 'n' })
.Select(x => new { id = x.split(',')[0], value = Convert.ToI……
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: