为了账号安全,请及时绑定邮箱和手机立即绑定

从第二种形式的列表中删除数据

从第二种形式的列表中删除数据

C#
慕哥9229398 2022-11-13 13:42:58
我有一个表格,我在其中读取包含学生信息的 csv 文件,该文件有两列StudentNumber和Mark. 我想让用户单击第一个表单上的一个按钮,然后转到另一个名为的表单deleteRecord。在此表单上,用户将键入 aStudentNumber和 a Mark,并且与它们对应的记录将从列表中删除两条信息。由于我是 C# 的新手,我不确定如何去做,所以我们将不胜感激。我的列表:public static List<string> studentInfo = new List<string>();我将该列表中的所有数据存储在一个名为 lstMarks 的列表框中我还想向用户确认记录已成功删除。
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

如果所有数据都存储在列表中,只需使用 LINQ 并为列表中的每个学生添加一个数字作为索引。


首先,您需要创建一个类并将其(我推荐)放在一个文件夹中。 它看起来如何。


然后你必须把属性放在类中:


public class Student

{

    public int StudentNumber {get; set;}

    public int Mark {get; set;}

    public int Index {get; set;}

}

现在用列表添加另一个类:


partial class MainWindow : Window

{

    private List<Student> _studentInfo = new List<Student>()

    {

        new Student() {Index = 0, StudentNumber = 0, Mark = 0}

        // ...

    }

然后在 deleteRecord 代码的顶部添加 using 以及文件夹和两个类的名称:


using ExampleFolder.Class;

您需要调用 Student 类才能修改 StudentNumber 以及 Mark 和 Index。


Student studentInfo = new Student();

    int iIndex = 0;


    var req = from info in studentInfo

              where info.StudentNumber == txtStudentNumber && info.Mark == txtMarks

              select info.Index; // Starts with 0 for the first student in the list

    foreach(var num in req)

    {

        iIndex = num;

    }

    studentInfo.Remove(studentInfo[iIndex]);


    MessageBox.Show("Deleted!");


查看完整回答
反对 回复 2022-11-13
  • 1 回答
  • 0 关注
  • 135 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号