小编B A*_*B A的帖子

使用CsvHelper获取列名列表的最佳方法是什么?

我正在尝试将CsvHelper用于项目.我浏览了文档,但是我找不到用单一方法读取所有列名的方法.如何使用CsvHelper轻松获取所有列标题名称的列表?我现在这样做,但我认为有更好的方法.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CsvHelper;
using System.IO;

namespace Kg
{
    class Program
    {
        static void Main(string[] args)
        {
            using (var reader = new StreamReader(@"myfile.csv"))
            {
                var csv = new CsvReader(reader);

                csv.Read();                  
                var has_header = true;
                var csv_headers = new List<string>();
                var header_index = 0;
                while (has_header)
                {
                    has_header = csv.TryGetField<string>(header_index, out string header_name);

                    if (has_header)
                    {
                        header_index += 1;
                        csv_headers.Add(header_name);

                    }

                }

                Console.WriteLine(csv_headers.Count);

            }
        }
}
Run Code Online (Sandbox Code Playgroud)

c# csv parsing csvhelper

20
推荐指数
2
解决办法
5417
查看次数

是否小于负"<< - "符号表示红宝石中的任何东西?

我想让自己熟悉ruby语法和编码样式(我是新手).我遇到了一个使用的代码,<<-这在Ruby中意味着什么?代码是

  def expectation_message(expectation)
    <<-FE
      #{expectation.message}
      #{expectation.stack}
    FE
  end
Run Code Online (Sandbox Code Playgroud)

这只是整个代码的一部分.任何帮助,将不胜感激.

ruby syntax

16
推荐指数
2
解决办法
6390
查看次数

如何在Ruby中动态调用Proc?

是否有proc.send等效的proc?例如:

def s a
a + 1
end
b = "s"
send b.to_sym,10 #=> 11
Run Code Online (Sandbox Code Playgroud)

有这样的事吗?

p = Proc.new{|s| s + 1}
d = "p"
*call d.to_sym,10 *
Run Code Online (Sandbox Code Playgroud)

编辑:为了回应mudasobwa的回答,我需要从一系列方法中调用Procs.例如:

ss = ["a","b","c","d"] 
Run Code Online (Sandbox Code Playgroud)

在这种情况下是否可能?

ruby

4
推荐指数
3
解决办法
1258
查看次数

如何将ruby中的方法链接传递给一个方法的输出到连续方法

如何将方法的结果传递给ruby中的另一个方法?例如:

class D
  def initialize(text)
    @text = text
  end

  def a s
    "hello #{s}"    
  end

  def b s
    "hi #{s}"
  end
end
Run Code Online (Sandbox Code Playgroud)

所以,我想要做的是将方法a的输出传递给方法b.所以基本上(如果方法不在类中)我可以执行以下操作:

puts b(a "Tom") #=>hi hello Tom
Run Code Online (Sandbox Code Playgroud)

但是,即使这不在一个类中,如果有很多方法也不会很好看,所以必须有更优雅的方法来做到这一点.那么hi hello Tom通过将方法a和b应用于类D的实例来获得输出的正确方法是什么?

更新我只是想让它更清晰一些.例如,在F#中,您可以执行以下操作:

let a s = "hello " + s
let b s = "hi " + s
"Tom" |> a |> b #=> hello hi Tom
Run Code Online (Sandbox Code Playgroud)

这里我们定义了函数a和b,然后将结果传递给下一个函数.我知道它是一种功能性语言,所以做事的方式会有所不同.但我只是想知道Ruby中是否有这样的技巧?

ruby methods chain

0
推荐指数
1
解决办法
457
查看次数

标签 统计

ruby ×3

c# ×1

chain ×1

csv ×1

csvhelper ×1

methods ×1

parsing ×1

syntax ×1