如何使用 C# 读取此文本文件并将其存储在列表中

2024-03-20

文本文件数据如下:



S.No    Name        Description Quantity    Rate    Discount    Amount
1       Apple       Friut is    12      24.02       0           242
                    Good for
                    health
2       Orange      Friut       5       12.22       3           128
3       Banana      Friut       5       12.22       3           128
4       Grapes      Friut       5       12.22       3           128
  

我想添加列表中的所有行和列,但描述列在单个项目中有多个行。我该如何解决这个问题。我在这里添加我现有的代码:

我现有的代码如下:

class Program
{
    static void Main(string[] args)
    {
        var dd = File.ReadAllLines(                    
                "C:\\Users\\Trainee\\Desktop\\Saravanan_Test\\27.8.2018\\Inputfile.txt")
                     .Skip(1)
                     .Where(s => s.Length > 1)
                     .Select(x => splits(x)).ToList();

        foreach (var item in dd)
        {
            Console.WriteLine(item.id+"\t" 
                              + item.Name+"\t"
                              + item.Description+"\t"
                              + item.Quantity+"\t"
                              + item.Rate+"\t"
                              + item.Discount+"\t"
                              + item.Amount);
        }

        Console.ReadKey();

    }

    private static Class1 splits(string x)
    {
        var columns = x.Split('\t').Where(c => c != "").ToList();
        return new Class1
        {
            id = Convert.ToInt32(columns[0]),
            Name = columns[1],
            Description = columns[2],
            Quantity = Convert.ToInt32(columns[3]),
            Rate = Convert.ToDouble(columns[4]),
            Discount = Convert.ToInt32(columns[5]),
            Amount = int.Parse(columns[6])
        };
    }
}    

class Class1
{
    public int id { get; set; }
    public string Name { get; set; }
    public String Description { get; set; }
    public int Quantity { get; set; }
    public double Rate { get; set; }
    public int Discount { get; set; }
    public int Amount { get; set; }
}

我想将数据存储到列表中,例如:

list.Add(new{ sno=1, Name="Apple", 
              Description="Friut is good for Health", 
              Quantity=12, Rate=24.02, Discount=0,
              Amount=242 });

提前致谢。


NOTE:该解决方案基于相关共享的文件。数据之间用空格分隔,不建议使用格式。回答以帮助他人了解他所拥有的内容格式。已测试并工作。

static void Main(string[] args)
{
    List<Data> list = new List<Data>();

    var dd = File.ReadAllLines(@"C:\Users\XXXX\Desktop\test.txt")
     .Skip(1)
     .Where(s => s.Length > 1).ToList();

    foreach (var item in dd)
    {
        var columns = item.Split('\t').Where(c => c.Trim() != string.Empty).ToList();

        if (columns != null && columns.Count > 0)
        {
            int id;

            if (int.TryParse(columns[0], out id))
            {
                list.Add(new Data()
                {
                    id = Convert.ToInt32(columns[0]),
                    Name = columns[1],
                    Description = columns[2],
                    Quantity = Convert.ToInt32(columns[3]),
                    Rate = Convert.ToDouble(columns[4]),
                    Discount = Convert.ToInt32(columns[5]),
                    Amount = int.Parse(columns[6])
                });
            }
            else
            {
                list.Last().Description += columns[0];
            }
        }
    }

    Console.ReadLine();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 C# 读取此文本文件并将其存储在列表中 的相关文章

  • VSTS 构建失败/发布无法在 bin 文件夹中找到 roslyn\csc.exe

    我们有一个网站项目 安装了以下 nuget 软件包 Microsoft CodeDom Providers DotNetCompilerPlatform 1 0 8 Microsoft Net Compilers 2 4 0 The web
  • c++11 正则表达式比 python 慢

    嗨我想了解为什么以下代码使用正则表达式进行分割字符串分割 include
  • 同步执行异步函数

    我对此主题进行了大量搜索 并且阅读了本网站上有关此主题的大部分帖子 但是我仍然感到困惑 我需要一个直接的答案 这是我的情况 我有一个已建立的 Winform 应用程序 但无法使其全部 异步 我现在被迫使用一个全部编写为异步函数的外部库 在我
  • C++ 模板中的名称查找

    我有一些 C 代码 如果没有 fpermissive 选项 就无法再编译 这是我无法分享的专有代码 但我认为我已经能够提取一个简单的测试用例来演示该问题 这是 g 的输出 template eg cpp In instantiation o
  • OpenCV Visual Studio ntdll.dll

    我尝试在 Visual Studio 2013 上使用 OpenCV 2 4 10 创建一个项目 但由于以下异常 到目前为止我运气不佳 请建议帮助 TIA letstryitonemoretime exe Win32 Loaded C Us
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • 使用静态类型代替变量

    当您的项目不使用命名空间时 有什么方法可以告诉编译器使用静态类型而不是变量吗 例如 我有一个名为 User 的类 它具有各种静态和非静态方法 假设调用了其中一个静态方法GetUser 我想称之为User GetUser 方法来自一个方法 该
  • 如何在 C++ 中对静态缓冲区执行字符串格式化?

    我正在处理一段对性能要求非常高的代码 我需要执行一些格式化的字符串操作 但我试图避免内存分配 甚至是内部库的内存分配 在过去 我会做类似以下的事情 假设是 C 11 constexpr int BUFFER SIZE 200 char bu
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 如何防止字符串被截留

    我的理解 可能是错误的 是 在 C 中 当你创建一个字符串时 它会被实习到 实习生池 中 这保留了对字符串的引用 以便多个相同的字符串可以共享操作内存 但是 我正在处理很多很可能是唯一的字符串 一旦完成每个字符串 我需要将它们从操作内存中完
  • C# 的空条件委托调用线程安全吗? [复制]

    这个问题在这里已经有答案了 这就是我一直以来编写事件引发者的方式 例如属性更改 public event PropertyChangedEventHandler PropertyChanged private void RaisePrope
  • Active Directory UserPrincipal.Current.GetGroups() 返回本地组而不是 Web 服务器上的组

    以下内容在我的本地开发盒上效果很好 但是 当我将其移动到网络服务器时 它失败了 甚至不会记录错误 public static List
  • System.diagnostics.process 进程在托管后无法在 IIS 上运行?

    我正在尝试从网络应用程序安装 exe 当我在本地运行应用程序 从 asp 开发服务器 时 它安装正确 但当我托管在 IIS 上时 它不起作用 我在asp net页面的Page load方法上编写了这段代码 想要在客户端计算机上安装Test
  • 如何使用 libpq 获取双精度值?

    The examples http www postgresql org docs 9 3 interactive libpq example htmllibpq 文档中展示了如何通过将整数值转换为主机字节序表示来获取整数值 我很好奇必须做
  • Qt:将拖放委托给子级的最佳方式

    我在 QWidget 上使用拖放 我重新实现了 DragEnterEvent dragLeaveEvent dragMoveEvent 和 dropEvent 效果很好 在我的 QWidget 中 我有其他 QWidget 子级 我希望它们
  • 如何解释“错误C2018:未知字符'0x40'?[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 在编译一些代码时 我收到以下信息 错误 C2018 未知字符 0x40 我想知道如何解决这样的问题 这是我要开始的地方
  • 需要使用 openssl 加密和解密文件的示例 C 代码

    我正在用 Linux C 编写代码 我需要使用以下命令来加密和解密文件 openssl 目前 我使用系统命令 des3 e nosalt k 0123456789012345 in inp file out out file 进行加密 使用
  • 如何分析 VSCode 中函数的性能

    我用 C Golang 编写了一个程序 如何找到占用最高 CPU 周期的函数 目的是提高正在执行的程序的性能 2021 年 10 月 金香儿哈娜 https github com hyangah宣布 tweet https twitter
  • 实体框架代理创建

    我们可以通过使用来停止在上下文构造函数中创建代理 this Configuration ProxyCreationEnabled false 在 EF 4 1 中创建代理有哪些优点和缺点 代理对于两个功能是必需的 延迟加载 导航属性在第一次
  • 如何将 Metro 应用部署到桌面?

    我正在尝试将我的 C 应用程序部署到我的 Windows 8 Metro 桌面 我可以在 bin 文件夹中看到部署的文件 但是当我尝试打开它们时 出现以下错误 该应用程序只能在 AppContainer 的上下文中运行 我检查了属性上下文菜

随机推荐

  • iOS 使用 UIActivityViewController 将图像共享到 LinkedIn

    我正在尝试将图像共享给我的设备中安装的所有可能的应用程序 但不幸的是 我无法将图像成功发布到 LinkedIn 已安装并以经过验证的用户身份登录 LinkedIn 显示在 UIActivityViewController 中的共享操作列表中
  • Azure 存储 SAS 身份验证失败

    我有一个私有的 azure 存储容器 并且正在尝试 azure 存储 SAS 以便我可以上传和下载文件 我能够生成签名 但它总是向我抛出身份验证失败错误 AuthenticationFailed服务器无法验证请求 确保授权标头的值格式正确
  • python 类型提示不会为错误类型生成错误

    我最近正在检查类型提示 在阅读了一些理论后 我尝试了一个简单的示例 如下所示 def myfun num1 int num2 int gt int return str num1 num2 a myfun 1 abc print a out
  • 在 PHP 中输​​出带有换行符的文本文件

    我正在尝试打开一个文本文件并使用下面的代码输出其内容 该文本文件包含换行符 但当我回显该文件时 其未格式化 我该如何解决 Thanks fh fopen filename txt r pageText fread fh 25000 echo
  • 用双斜杠替换单斜杠,php

    如何用双斜杠替换单斜杠 我有这样的文字 data folder and i need get data folder 我尝试替换 但出现错误 data str replace data 你说的是反斜杠还是普通斜杠 无论如何 请检查下面的代码
  • Python 3 类型注释和子类

    如何在 Python 类型注释中引用 任何子类化父类的对象 例子 FooBase是一个抽象基类 其中Foo1 Foo2等被子类化 我希望该函数接受任何后代FooBase 这会吗 def do something self bar FooBa
  • 使用seaborn时如何从箱线图中获取统计值?

    我用seaborn制作了一个箱线图 我想获得一些统计值 例如最小值 第一四分位数 中位数 第三四分位数 最大值以及异常值 是否有任何函数或属性可以通过 seaborn boxplot 直接收集这些值 或者我应该通过其他包或手动计算这些 使用
  • 为什么我的本地对象被破坏了两次?

    我有一个返回本地对象的函数 class AT public AT cout lt lt construct lt
  • Birt 查看器无法加载报告查询

    当我尝试运行 BIRT 查看器时 显示以下错误 无法加载报表查询 163 为 ID 为 163 的报表元素生成报表文档时发生错误 元素 ID 163 但同一模块在 Eclipse 中成功地给出了报表设计结果 我正在使用 JDBC 连接 我该
  • 如何将JSON数据保存在本地(本机上)?

    我使用以下链接创建树状结构 这是我的代码
  • 删除零线二维numpy数组

    I run a qr factorization in numpy它返回一个列表ndarrays 即Qand R gt gt gt q r np linalg qr np array 1 0 0 0 1 1 1 1 1 reshape 3
  • 如何重定向到 CloudFront 分配中的特定 CNAME

    我在 AWS 中有 2 个 CloudFront 发行版 每个发行版都有自己不同的证书 每个 CNAME 都附加了多个 CNAME 并且每个 CNAME 在 Route 53 中都有一个对应的记录集 有没有办法将其中一个 URL 重定向到另
  • 在 C++ 中使用 setInterval()

    在JavaScript中 有一个函数叫做setInterval 用C 可以实现吗 如果使用循环 程序不会继续 而是继续调用该函数 while true Sleep 1000 func cout lt lt Never printed 没有内
  • For循环应该打印出ArrayList属性和其他ArrayList属性

    我正在尝试从同一系统中的两个不同的 ArrayList 打印属性 无法让它工作并自杀找出为什么它不起作用 for int i 0 i lt resultlist size i Athlete matched null Result res
  • 通过 Google Apps 脚本发布 Google 电子表格

    是否可以使用 Google Apps 脚本将 Google 电子表格发布到网络上 现在我必须使用手动执行此操作File gt Publish to the web 我检查了所有 Google Apps 脚本参考和指南 但没有看到任何有关通过
  • Java Swing 元素转换

    我正在尝试制作一个小型的非商业应用程序 并使其具有设计良好的界面 具有屏幕转换等功能 我在一个 JFrame 中的单独面板上拥有每个 屏幕 并且希望能够在面板之间转换时平滑地滑动它们 有什么办法可以轻松地实现这一点吗 由于您尚未接受答案 我
  • jQuery 中 $.map 和 $.grep 有什么区别

    有什么区别 map and grep在 jQuery 中 我想要一个尽可能简单的答案 我假设你的意思是 grep and map 不同之处在于我们使用 grep在我们使用时过滤数组 map将函数应用于数组中的每个项目 这是一个比我能做出的更
  • PermissionError:[Errno 13] 权限被拒绝:pipenv 安装请求的“Pipfile”

    我正在尝试遵循有关 Pipenv 和 virtualenv 的指南 http docs python guide org en latest dev virtualenvs http docs python guide org en lat
  • 如何在iOS应用程序中解析JSON

    我从 Twitter 收到字符串形式的响应 我需要的是将注释所在的部分发送到数组 这是字符串的示例 geo null coordinates null retweeted false text KristinaKlp saluditos y
  • 如何使用 C# 读取此文本文件并将其存储在列表中

    文本文件数据如下 S No Name Description Quantity Rate Discount Amount 1 Apple Friut is 12 24 02 0 242 Good for health 2 Orange Fr