在C#中使用文本作为参数读取Csv文件

安基·库玛(Ankit kumar)

我有下面的代码,在这里我通过将文件路径作为参数来读取csv文件。该文件是有效的csv文件,我能够读取并成功执行必要的操作。但是现在需求已更改,我现在将CSV文件内容作为参数而不是文件路径。我想知道如何修改下面的方法,使我的结果与下面的函数相同:

private IEnumerable<Dictionary<string,EntityProperty>> ReadCSV( string path, IEnumerable<TableField> cols )
    {
        using( TextReader reader = File.OpenText( path ) )
        {
            var cache = new TypeConverterCache();
            cache.AddConverter<float>( new CSVSingleConverter() );
            cache.AddConverter<double>( new CSVDoubleConverter() );
            var csv = new CsvReader( reader,
                new CsvHelper.Configuration.CsvConfiguration( System.Globalization.CultureInfo.InvariantCulture )
                {
                    Delimiter = ";",
                    HasHeaderRecord = true,
                    CultureInfo = System.Globalization.CultureInfo.InvariantCulture,
                    TypeConverterCache = cache
                } );
            csv.Read();
            csv.ReadHeader();

            var map = (
            from col in cols
            from src in col.Sources()
            let index = csv.GetFieldIndex( src, isTryGet: true )
            where index != -1
            select new { col.Name, Index = index, Type = col.DataType }).ToList();

            while( csv.Read() )
            {
                yield return map.ToDictionary(
                    col => col.Name,
                    col => EntityProperty.CreateEntityPropertyFromObject( csv.GetField( col.Type, col.Index ) ) );
            }
        }
    }

我的TableField是具有以下对象的类:

 public class TableField
{
    public string Name { get; set; }
    public string Type { get; set; }
    ....and so on
杰西·春

还没有测试过,但这应该可以解决问题。更改前几行,如下所示:

private IEnumerable<Dictionary<string,EntityProperty>> ReadCSV( string data, IEnumerable<TableField> cols )
    {
        using( TextReader reader = new StringReader(data) )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++在文本中使用\读取文件

来自分类Dev

在C#中使用环境变量从文本文件读取文件路径

来自分类Dev

在C#中使用环境变量从文本文件读取文件路径

来自分类Dev

在C#中使用double类型作为参数

来自分类Dev

在C#中使用LINQ select作为方法参数

来自分类Dev

在 C# 中使用 SQL 命令作为参数值

来自分类Dev

在 C# 中使用泛型类型作为参数

来自分类Dev

使用C从文本文件读取输入参数

来自分类Dev

使用C#从文本文件读取

来自分类Dev

无法在 C# 中使用 OLEDB 读取 xlsx 文件

来自分类Dev

如何使用C#从FTP读取CSV文件

来自分类Dev

C#使用LINQ读取和过滤CSV文件

来自分类Dev

C#使用LINQ读取和过滤CSV文件

来自分类Dev

C#使用SQL条件读取CSV文件

来自分类Dev

在C#中使用多个参数运行.exe文件

来自分类Dev

读取文本文件C#

来自分类Dev

在C中使用函数作为参数

来自分类Dev

在C中使用函数作为参数

来自分类Dev

在C ++中使用struct数组作为参数

来自分类Dev

在 C++ 中使用逻辑作为参数

来自分类Dev

C中使用数组作为参数的函数

来自分类Dev

如何在C ++中使用混合文本和二进制文件读取大文件

来自分类Dev

在C中使用temp文件读取文件

来自分类Dev

使用接口作为通用类的类型参数,但在C#中使用“类”的限制

来自分类Dev

使用C#读取Excel文件和写入文本文件的速度非常慢

来自分类Dev

在WebBrowser C#中使用'this'关键字作为参数执行javascript函数

来自分类Dev

在没有委托的情况下在 C# 中使用方法作为参数?

来自分类Dev

在内部匿名函数 C# 中使用作为参数传递给函数的对象

来自分类Dev

c# 使用枚举作为事件参数

Related 相关文章

热门标签

归档