2015-11-26 86 views
1

我有一个两个数组,我从一个CSV文件中取出,我想检查我的当前输出为第一个数组并输出第二个数组,例如 “你好,LOL”会输出“你好,笑出声来” 我已经使用使用数组替换字符串

var reader = new StreamReader(File.OpenRead(@filelocation")); 
List<string> listA = new List<string>(); 
List<string> listB = new List<string>(); 

while (!reader.EndOfStream) 
{ 
    var line = reader.ReadLine(); 
    var values = line.Split(','); 

    listA.Add(values[0]); 
    listB.Add(values[1]); 
} 

的数组存储,并在他们正确的信息,我只是不知道如何从第一个列表检查字符串,并将其改变为第二。

+0

您能否向我们展示csv文件内容的示例?我不明白你为什么需要两个数组?为什么不把所有的信息放在一起? –

+0

b4,之前 BC,因为 我不知道为什么我有他们在两个数组中,我不知道我在做什么。 – Okay

回答

0

对于此操作,应该使用Dictionary而不是List。另外,您可以使用File.ReadAllLines来读取文件中的所有行而不是循环。

// I replace your code with linq 
Dictionary<string, string> dictionary = 
    File.ReadAllLines("@filelocation").Select(l => l.Split(',')).ToDictionary(k => 
k[0], v => v[1]); 

string input = "Hello, LOL" ; 

var thekey = dictionary.Keys.FirstOrDefault(k => input.Contains(k)); 

if (thekey != null) // Replacement was found 
{ 
    input = input.Replace(thekey, dictionary[thekey]);  
} 

// Should print Hello, Laugh out loud 
Console.WriteLine(input) ; 
+0

我已经存储了我想要更改的值,ListA包含所有缩写,listB包含全部单词,我想检查我的输入,并且如果发现listA中的某些内容已交换到listB 例如输入可能是“是的,大声笑”,它会检查通过列表A输入将是“是的,大声笑出来”,因为“大声笑”变成“大声笑出来” – Okay

+0

@Okay:我做了更新 – Ksv3n