Ruby 查找给定CSV行的索引

Ruby 查找给定CSV行的索引,ruby,csv,Ruby,Csv,我有一个CSV文件,我可以这样搜索: csv.find {|row| row[0] == 'MB_ID'} 它返回一个对象: #<CSV::Row "MB_ID":"MB_ID"> 因此,“MB_ID”的预期结果为1(或0,具体取决于CSV的索引方式) 我使用以下方法读取文件: csv = File.read("foreign.csv") csv = CSV.parse(csv, :headers => true) index仅适用于数组。对于像CSV::Table这样的

我有一个CSV文件,我可以这样搜索:

csv.find {|row| row[0] == 'MB_ID'}
它返回一个对象:

#<CSV::Row "MB_ID":"MB_ID">
因此,“MB_ID”的预期结果为1(或0,具体取决于CSV的索引方式)

我使用以下方法读取文件:

csv = File.read("foreign.csv")
csv = CSV.parse(csv, :headers => true)

index
仅适用于数组。对于像
CSV::Table
这样的可枚举项,必须使用:


index
仅适用于数组。对于像
CSV::Table
这样的可枚举项,必须使用:


csv.index{| row | row[0]='MB_ID'}
似乎适合我。您能提供一个示例csv文件和预期结果吗?您如何读取csv文件?@Stefanedited@GrahamSlick您的示例数据实际上不起作用,因为它将
MB_ID
视为标题行。
csv.index{| row | row[0]=='MB_ID'}
似乎对我有用。你能提供一个示例CSV文件和预期结果吗?你如何读取CSV文件?@Stefanedited@GrahamSlick您的示例数据实际上不起作用,因为它将
MB_ID
视为标题行。
csv = File.read("foreign.csv")
csv = CSV.parse(csv, :headers => true)
csv.find_index { |row| row[0] == 'MB_ID' } #=> 0