Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用数组替换字符串_C#_Arrays_Streamreader - Fatal编程技术网

C# 使用数组替换字符串

C# 使用数组替换字符串,c#,arrays,streamreader,C#,Arrays,Streamreader,我有一个从csv文件中获取的两个数组,我想检查第一个数组的当前输出,并输出第二个数组,例如 “Hello,LOL”将输出“Hello,大声笑” 我用过 var reader = new StreamReader(File.OpenRead(@filelocation")); List<string> listA = new List<string>(); List<string> listB = new List<string>(); while

我有一个从csv文件中获取的两个数组,我想检查第一个数组的当前输出,并输出第二个数组,例如 “Hello,LOL”将输出“Hello,大声笑” 我用过

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]);
}
var reader=newstreamreader(File.OpenRead(@filelocation));
List listA=新列表();
List listB=新列表();
而(!reader.EndOfStream)
{
var line=reader.ReadLine();
var值=行分割(',');
listA.Add(值[0]);
列表B.添加(值[1]);
}
数组被存储并包含正确的信息,我只是不知道如何检查第一个列表中的字符串并将其更改为第二个。

此操作应使用a而不是列表。此外,您可以使用读取文件中的所有行,而不是循环

// 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) ; 
//我用linq替换您的代码
字典=
File.ReadAllLines(“@filelocation”)。选择(l=>l.Split(“,”)。ToDictionary(k=>
k[0],v=>v[1]);
字符串输入=“你好,LOL”;
var thekey=dictionary.Keys.FirstOrDefault(k=>input.Contains(k));
if(thekey!=null)//找到替换项
{
input=input.Replace(thekey,dictionary[thekey]);
}
//应该打印你好,大声笑出来
控制台写入线(输入);
此操作应使用,而不是列表。此外,您可以使用读取文件中的所有行,而不是循环

// 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) ; 
//我用linq替换您的代码
字典=
File.ReadAllLines(“@filelocation”)。选择(l=>l.Split(“,”)。ToDictionary(k=>
k[0],v=>v[1]);
字符串输入=“你好,LOL”;
var thekey=dictionary.Keys.FirstOrDefault(k=>input.Contains(k));
if(thekey!=null)//找到替换项
{
input=input.Replace(thekey,dictionary[thekey]);
}
//应该打印你好,大声笑出来
控制台写入线(输入);

你能给我们看一个csv文件内容的样本吗?我不明白你为什么需要两个数组?为什么不把所有信息放在一个数组中?b4,在BC之前,因为我不知道为什么我把它们放在两个数组中,我不知道我在做什么。你能给我们看一个csv文件内容的样本吗?我不明白你为什么需要两个数组射线?为什么不把所有的信息都放在一个数组中呢?b4,在BC之前,因为我不知道为什么我把它们放在两个数组中,我不知道我在做什么。我已经存储了我要更改的值,ListA保存了所有的缩写,listB保存了完整的单词,我想检查我的输入,如果发现ListA中的某些内容,请将其交换到listB例如,输入可以是“yes,LOL”,它将通过列表检查输入。输出将是“yes,low out loud”,因为“LOL”变为“low out loud loud”“我已经存储了我想要更改的值,ListA保存了所有缩写,listB保存了完整的单词,我想检查我的输入,如果发现ListA中的某些内容,将其交换到listB,例如,输入可以是“yes,LOL”,它将通过列表检查输入。输出将是“yes,Lool”变成“大声笑”