c# 笔记 winform添加右键菜单,获取文件大小 ,多条件排序OrderBy、ThenBy,list<double>截取前5个

Winform右键菜单‌

要在C# Winform应用程序中添加右键菜单,‌你可以按照以下步骤操作:‌

1.‌创建菜单项‌

在Form的构造函数或加载事件中,‌创建ContextMenuStrip控件的实例,‌并为其添加菜单项。‌

2.‌绑定到控件‌

将ContextMenuStrip控件绑定到需要显示右键菜单的控件上,‌如Panel、‌DataGridView等。‌

3.‌编写菜单项事件‌

为每个菜单项编写点击事件,‌以实现所需的功能。‌

示例代码如下:‌

csharp 复制代码
public Form1()
{
    InitializeComponent();
    ContextMenuStrip cms = new ContextMenuStrip();
    cms.Items.Add("菜单项1").Name = "menuItem1";
    cms.Items.Add("菜单项2").Name = "menuItem2";
    this.panel1.ContextMenuStrip = cms;
    cms.ItemClicked += Cms_ItemClicked;
}
csharp 复制代码
private void Cms_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    switch (e.ClickedItem.Name)
    {
        case "menuItem1":
            // 实现菜单项1的功能
            break;
        case "menuItem2":
            // 实现菜单项2的功能
            break;
    }
}

获取文件大小

在C#中,‌获取文件大小可以通过以下几种方式实现:‌

1.‌使用FileInfo类‌

FileInfo 类提供了 Length 属性,‌可以直接获取文件的大小。‌

csharp 复制代码
FileInfo fileInfo = new FileInfo("文件路径");
long size = fileInfo.Length;
2.‌使用File类的静态方法‌

File.GetAttributes 方法可以用来获取文件的大小,‌但更常用的是获取文件属性,‌直接获取大小不是其主要用途。‌

更推荐使用 FileInfo 或下面的 FileStream。‌

3.‌使用FileStream类‌

通过创建 FileStream 实例并使用其 Length 属性获取文件大小。‌

csharp 复制代码
using (FileStream fs = new FileStream("文件路径", FileMode.Open))
{
    long size = fs.Length;
}

多条件排序OrderBy、ThenBy

在C#中,‌实现多条件排序通常使用OrderBy和ThenBy方法。‌

1.‌基本用法‌

OrderBy:‌根据指定的键选择器函数对序列的元素进行排序。‌

ThenBy:‌在OrderBy排序的基础上,‌进一步根据指定的键选择器函数对序列的元素进行排序。‌

2.‌示例代码‌
csharp 复制代码
var sortedList = list.OrderBy(x => x.Field1)
                     .ThenBy(x => x.Field2)
                     .ThenByDescending(x => x.Field3)
                     .ToList();
3.‌注意事项‌

OrderBy和ThenBy可以链式调用,‌实现多级排序。‌

可以使用OrderByDescending和ThenByDescending进行降序排序。‌

list截取前5个

csharp 复制代码
using System;
using System.Collections.Generic;
using System.Linq;
 
class Program
{
    static void Main()
    {
        List<double> list = new List<double> { 1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9 };
        List<double> firstFive = list.Take(5).ToList();
 
        foreach (double number in firstFive)
        {
            Console.WriteLine(number);
        }
    }
}
相关推荐
摇滚侠7 小时前
AI 编程工具 《TRAE 官方手册》阅读笔记 AI 编程核心 上
人工智能·笔记
冰封之寂10 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
云计算磊哥@12 小时前
运维开发宝典058-大型网站nginx服务器管理全集4
服务器·nginx·运维开发
Ztt66666666612 小时前
六方壶不只看棱角,转得温和才耐看
经验分享·笔记·其他·百度·微信公众平台
吴可可12312 小时前
C#用OpenCVSharp提取轮廓生成CAD多段线
c#
酷可达拉斯13 小时前
Linux操作系统-shell编程之Grep与正则表达式
linux·运维·服务器·正则表达式·centos
RainCity14 小时前
Java Swing 自定义组件库分享(十五)
java·笔记·后端
一只小菜鸡..14 小时前
CMU 15-213 CSAPP:机器级编程与内存的暗黑魔法(Machine-Level)
笔记·学习
ysa05103015 小时前
【板子】二分答案(最大最小?)
c++·笔记·算法·板子
玖玥拾16 小时前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#