如何从datagrid和数组中删除行

时间:2018-10-15 13:42:41

标签: arrays wpf csv datagrid

我在WPF应用程序中的数据网格。显示csv文件。我想将csv文件复制到数组中。从数组中删除一个字符串,该字符串与datagrid中选择的行相同(比较索引)。最后,我在第二个datagrid中显示字符串数组。

//Storing csv file in string array
var filePath = "csvFile.csv";
using (StreamReader file = new StreamReader(filePath))
{
    while (!file.EndOfStream)
    {
        int selectedIndex =int.Parse(dgData.SelectedIndex.ToString());
        string strResult = file.ReadToEnd();
        string[] result = strResult.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
        List<string> list = new List<string>(result);
        list.RemoveAt(selectedIndex);
        foreach (string item in list)
        {
            Console.WriteLine(item);
            Console.ReadLine();
        }
        dgtest.ItemsSource = list;
    } 
    file.Close();
}

我希望更正我的代码。此刻,我出现了一个错误:

  

索引超出范围。

1 个答案:

答案 0 :(得分:0)

您正在使事情复杂化。尝试这样的事情:

const string FilePath = "csvFile.csv";
List<string> lines = File.ReadAllLines(FilePath)?.ToList();
int selectedIndex = dgData.SelectedIndex;
if (lines != null && selectedIndex > 0 && lines.Count > selectedIndex)
    lines.RemoveAt(selectedIndex);
dgtest.ItemsSource = lines;