我正在访问一个文本文件,其中包含列中的值,行格式,因此第一行是列,其余都是相应的行。
我有一个条件,例如,如果列名为BSC
且其值为BSC37
或BSC38
,我必须将值设置为region_code = "AUH";
。如果值为BSCN10
,则region_code
可以是AUH
或DBL
,因此此处列名的另一个值为" LAC" == 3然后region_code是' AUH'否则如果" LAC" == 4那么region_code
是' DXB'。
我坚持要实现它,因为这些值在同一行和顺序进行。
这是我到目前为止所做的:
string[] cols = lines[0]
.Trim()
.Split(new[] { '\t', ' ' }, StringSplitOptions.RemoveEmptyEntries);
int liness = 1;
foreach (string line in lines.Skip(2))
{
string[] cells = line
.Trim()
.Split(new[] { '\t' }, StringSplitOptions.RemoveEmptyEntries);
for (int counter = 0; counter < cols.Length; counter++)
{
string cellValue = "N/A";
if (counter < cells.Length)
cellValue = cells[counter];
if (cols[counter] == "BSC")
{
insvalues2gericson.Add(new FormField("BSC_ID", cellValue, 2));
if (cellValue == "BSC37" || cellValue == "BSC38" )
{
region_code = "AUH";
}
else
if (cellValue == "BSCN10")
{
//here i need to coding
}
}
}
}
答案 0 :(得分:1)
你可以这样做。将第一行放在列列表中。浏览剩余的行,将每行放在单元格列表中。然后,按列名称获取某列的索引(例如columns.IndexOf("BSC")
)以获取单元格值。这样,您就可以轻松访问列BSC
和LAC
的单元格值。< / p>
using System;
using System.Linq;
public class Program
{
public static void Main()
{
var text = "BSC,LAC" + Environment.NewLine
+ "BSC37,1" + Environment.NewLine
+ "BSC38,2" + Environment.NewLine
+ "BSCN10,3"+ Environment.NewLine
+ "BSCN10,4";
var rows = text.Split(new string[]{Environment.NewLine}, StringSplitOptions.RemoveEmptyEntries).ToList();
var columns = rows[0].Split(',').ToList();
foreach(var row in rows.Skip(1)) {
var cells = row.Split(',');
string regionCode = "";
if(cells[columns.IndexOf("BSC")] == "BSC37"
|| cells[columns.IndexOf("BSC")] == "BSC38") {
regionCode = "AUH";
}
if(cells[columns.IndexOf("BSC")] == "BSCN10")
{
if(cells[columns.IndexOf("LAC")] == "3") {
regionCode = "AUH";
}
if(cells[columns.IndexOf("LAC")] == "4")
regionCode = "DXB";
}
}
Console.WriteLine("{0},{1}->{2}",cells[0],cells[1], regionCode);
}
}
}