C#使用LinkedList实现内存记事本(附完整代码)
本文通过具体代码实例,详细解析了如何利用C#中的`LinkedList
系统准备
要实现此功能,首先需要准备好C#开发环境(如Visual Studio或.NET Core SDK),并新建一个控制台应用程序项目。本项目将主要涉及对象定义与控制流程管理两个核心部分。
第1步:定义数据实体(User)
首先创建一个基础的用户信息模型,用于封装记事本中存储的数据。虽然简单的场景可以使用数组列表(`ArrayList`),但现代C#开发更推荐使用泛型集合来确保类型安全。
using System;
namespace NotepadModel
{
public class User
{
private string username;
public string Username
{
get { return username; }
set { username = value; }
}
private string sex;
public string Sex
{
get { return sex; }
set { sex = value; }
}
private string age;
public string Age
{
get { return age; }
set { age = value; }
}
private string phone;
public string Phone
{
get { return phone; }
set { phone = value; }
}
}
}
第2步:编写控制器(Controller)
此处采用`System.Collections.Generic.LinkedList
using System;
using System.Collections.Generic;
namespace NotepadController
{
public class Controller
{
// 使用泛型LinkedList替代ArrayList
private LinkedList<User> linkList = new LinkedList<User>();
// 公开属性以便外部访问
public LinkedList<User> LinkList
{
get { return linkList; }
}
// 增加用户到链表末尾
public void Add(User user)
{
linkList.AddLast(user);
Console.WriteLine("添加成功!");
}
// 删除指定用户
public void Delete(string username)
{
var node = linkList.Find(u => u.Username == username);
if (node != null)
{
linkList.Remove(node);
Console.WriteLine("删除成功!");
}
else
{
Console.WriteLine("用户不存在,无法删除!");
}
}
// 查找特定用户
public User Search(string username)
{
var node = linkList.Find(u => u.Username == username);
return node?.Value;
}
}
}
第3步:控制台交互主程序(Program.cs)
在主程序中构建菜单循环,接收用户指令并调用控制器的相应方法,从而实现完整的记事本交互体验:
using System;
using NotepadModel;
using NotepadController;
namespace NotepadApp
{
class Program
{
static void Main(string[] args)
{
Controller controller = new Controller();
bool isRunning = true;
while (isRunning)
{
Console.WriteLine("=== 内存记事本菜单 ===");
Console.WriteLine("1. 新增用户");
Console.WriteLine("2. 删除用户");
Console.WriteLine("3. 查看所有用户");
Console.WriteLine("4. 退出系统");
Console.Write("请选择操作:");
string input = Console.ReadLine();
switch (input)
{
case "1":
User newUser = new User();
Console.Write("请输入姓名:");
newUser.Username = Console.ReadLine();
Console.Write("请输入性别:");
newUser.Sex = Console.ReadLine();
Console.Write("请输入年龄:");
newUser.Age = Console.ReadLine();
Console.Write("请输入电话:");
newUser.Phone = Console.ReadLine();
controller.Add(newUser);
break;
case "2":
Console.Write("请输入要删除的姓名:");
string delName = Console.ReadLine();
controller.Delete(delName);
break;
case "3":
Console.WriteLine("--- 当前用户列表 ---");
foreach(var item in controller.LinkList)
{
Console.WriteLine($"姓名: {item.Username}, 性别: {item.Sex}");
}
break;
case "4":
isRunning = false;
break;
default:
Console.WriteLine("无效输入,请重新选择。");
break;
}
Console.WriteLine();
}
}
}
}
总结
通过上述步骤,我们成功实现了一个基于C#链表结构的简易记事本。该实例不仅展示了如何对数据进行基本CRUD操作,同时也体现了面向对象设计思想在实际工程中的应用。以上就是C#实现基于链表内存记事本的详细内容,更多关于C#数据结构设计的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













