1-1-250502C#字典应用

  1. 用户需求:
    1) 通过扫码枪扫取设备条形码,作为当前拟采集数据的设备对应的标签
    2) 定时(如每5秒)读取并记录一次设备的状态参数

  2. 基于C#的解决方案:
    在C#中,声明字典,其中字典的键相当于设备的条形码,字典的值相当于定时(如每5秒)读取并记录的设备的状态参数值
    序号 名称 内容
    1 键 扫码枪扫描的,设备标签条码字符串
    2 值 设备标签对应的定时读取参数信息,存储在List

  3. 具体验证方式:
    1) 点击bt1按钮,将当前时间标签模拟扫码枪随机扫码标签,并启用定时器timer1,开始执行定时(每5秒)读取对应状态参数(以随机数模拟),并显示在相应textbox文档中
    2) 点击bt2按钮,采集数据结束,并显示结束采集时间
    3) 点击bt3按钮,显示字典中的键值对,并跟实时采集文本框对应,以验证键值对是否首先存入字典

    4.具体代码
    1)拖动timer控件至界面,并设置Interval为5000(意为每5000ms执行一次)

    2)具体代码实现
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using static System.Windows.Forms.VisualStyles.VisualStyleElement;

namespace winform250502_设备标签及相应数据采集
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//声明随机数变量,DateTime变量,及字典
Random var随机数 = new Random();
private DateTime var当前时间;
Dictionary<DateTime, List> var字典 = new Dictionary<DateTime, List>();

    // 点击按钮1时,记录当前时间作为字典的键,并new一个准备存放数据的list

    private void button1_Click_1(object sender, EventArgs e)
    {
        var当前时间 = DateTime.Now;
        textBox1.Text = var当前时间.ToString();
        var字典[var当前时间] = new List<int>();
        timer1.Start();
    }
    //定义timer事件,添加字典的键值对,并遍历字典的键值对显示在textbox3中
    private void timer1_Tick_1(object sender, EventArgs e)
    {
        var字典[var当前时间].Add(var随机数.Next(0, 101));
        textBox3.Clear();
        foreach (var kvp in var字典)
        {
            string dataString = $"条码: {kvp.Key}\n参数: {string.Join(", ", kvp.Value)}\n\n";
            textBox3.AppendText(dataString);
        }
    }
    //点击button2,模拟结束当前设备参数采集,记录当前关闭时间并关闭timer事件,
    private void button2_Click_1(object sender, EventArgs e)
    {
        var当前时间 = DateTime.Now;
        textBox2.Text = var当前时间.ToString();
        timer1.Stop();
    }

    //点击button3,同样遍历显示字典键值对.即设备标签及对应参数,以验证是否首先存入字典,以便于后续扩展   
    private void button3_Click_1(object sender, EventArgs e)
    {
        textBox4.Clear();
        foreach (var kvp in var字典)
        {
            string dataString = $"条码: {kvp.Key}\n参数: {string.Join(", ", kvp.Value)}\n\n";
            textBox4.AppendText(dataString);
        }
    }    
}

}

posted @ 2025-05-02 18:12  zhouleidatou  阅读(67)  评论(0)    收藏  举报