【C#】通过扩展对象的方式,对字符串等数据类型进行数据进一步处理

简介: 在本篇文章中,我们讲一起了解下对象扩展的使用在实际项目开发中,对象扩展使用的场景还是挺多的,比如:需要对时间值进行再处理,或者字符串中的斜杠(/)转为反斜杠(\)
作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
  • 主要知识点列表
编号 语言或插件 知识点 说明
1 C# this 通过this+数据类型+变量名
2 C# ToUpper() 将字符串转为大写
3 C# Substring(下标, 长度) 截取字符串

【扩展对象】

1)必须是在非泛型静态类下定义扩展方法

image.png

2)正确的扩展写法,在class关键词前添加static关键词

3)静态类,成员必须是静态,所以方法也必须设置成静态
image.png

  • 扩展的基础代码格式
public static class TestExtend
{
    public static string FirstBig(this string from_text, string string_text)
    {
        string new_text = string.Empty;

        return new_text;
    }
}

【内置函数实现首字母大写】

通过扩展方法,实现首字母大写的功能,实现的方式有很多

1)首先肯定需要判断字符串是否有值,null和""空值均不做处理

2)如果只存在一个长度字符串,那么直接转为大写返回,

3)如果大于等于两个长度字符串,那么通过截取方法,获取第一字符串以及之后的所有字符串

  • 代码
public static class TestExtend
{
    public static string FirstBig(this string from_text, string string_text)
    {
        string new_text = string.Empty;

        if (string.IsNullOrEmpty(from_text))
        {
            return new_text;
        }
        else if (from_text.Length == 1)
        {
            new_text = from_text.ToUpper();
            return new_text;
        }

        string first_text = from_text.Substring(0, 1);
        string other_text = from_text.Substring(1, from_text.Length - 2);

        new_text = first_text.ToUpper() + other_text;

        return new_text;
    }
}

image.png

4)方法进一步修改完善,通过遍历的方式,把所有单词的首个字母转为大写

  • 代码
public static string FirstBig(this string from_text)
{
    string new_text = string.Empty;

    if (string.IsNullOrEmpty(from_text))
    {
        return new_text;
    }
    else if (from_text.Length == 1)
    {
        new_text = from_text.ToUpper();
        return new_text;
    }

    bool first_flag = false;
    foreach (char item in from_text)
    {
        bool flag = Regex.Matches(item.ToString(), "[a-zA-Z]").Count > 0;
        if (flag && !first_flag)
        {
            first_flag = true;
            new_text += item.ToString().ToUpper();
        }
        else if (flag)
        {
            new_text += item.ToString();
        }
        else
        {
            first_flag = false;
            new_text += item.ToString();
        }
    }

    return new_text;
}
}
  • 效果

image.png

【将字符串中的反斜杠转为斜杠】

1)在windows操作系统下,文件和文件夹的路径是反斜杠方式

image.png

2)如果保存在数据库中,那么在web项目中使用,前端虽然也能识别,但是看着别扭。在一些特殊情况有时会报错,所以需要统一转为斜杠方式

  • 代码
public static class TestExtend
{
    public static string NewPath(this string from_text)
    {
        return from_text.Replace("\\","/");
    }
}

image.png

相关文章
|
17天前
|
开发框架 .NET C#
C#|.net core 基础 - 删除字符串最后一个字符的七大类N种实现方式
【10月更文挑战第9天】在 C#/.NET Core 中,有多种方法可以删除字符串的最后一个字符,包括使用 `Substring` 方法、`Remove` 方法、`ToCharArray` 与 `Array.Copy`、`StringBuilder`、正则表达式、循环遍历字符数组以及使用 LINQ 的 `SkipLast` 方法。
|
1月前
|
存储 C# 索引
C# 一分钟浅谈:变量与数据类型简介
【9月更文挑战第1天】在 C# 编程中,了解变量与数据类型至关重要。本文详细介绍了 C# 中的值类型(如整数、浮点数、布尔值等)和引用类型(如类、接口、数组、字符串)。通过示例代码展示了变量的声明与使用方法,并针对数据类型转换错误、变量未初始化及数值溢出等常见问题提供了解决方案。正确选择数据类型不仅能提升程序性能,还可避免潜在错误,有助于编写高质量代码。
124 47
|
1月前
|
开发框架 .NET 程序员
C# 去掉字符串最后一个字符的 4 种方法
在实际业务中,我们经常会遇到在循环中拼接字符串的场景,循环结束之后拼接得到的字符串的最后一个字符往往需要去掉,看看 C# 提供了哪4种方法可以高效去掉字符串的最后一个字符
164 0
|
16天前
|
编译器 C#
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
C#多态概述:通过继承实现的不同对象调用相同的方法,表现出不同的行为
111 65
|
14天前
|
SQL 缓存 分布式计算
C#如何处理上亿级数据的查询效率
C#如何处理上亿级数据的查询效率
12 1
|
14天前
|
中间件 数据库连接 API
C#数据分表核心代码
C#数据分表核心代码
27 0
|
1月前
|
存储 C# 开发者
枚举与结构体的应用:C#中的数据组织艺术
在C#编程中,枚举(`enum`)和结构体(`struct`)是非常重要的数据类型。枚举用于定义命名常量集合,提高代码可读性;结构体则封装相关数据字段,适合小型数据集。本文从基本概念入手,探讨它们的使用技巧、常见问题及解决方案,帮助开发者更好地利用这些特性构建健壮的应用程序。
34 8
|
17天前
|
XML JSON 前端开发
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
C#使用HttpClient四种请求数据格式:json、表单数据、文件上传、xml格式
197 0
|
1月前
|
C# 数据安全/隐私保护
C# 一分钟浅谈:类与对象的概念理解
【9月更文挑战第2天】本文从零开始详细介绍了C#中的类与对象概念。类作为一种自定义数据类型,定义了对象的属性和方法;对象则是类的实例,拥有独立的状态。通过具体代码示例,如定义 `Person` 类及其实例化过程,帮助读者更好地理解和应用这两个核心概念。此外,还总结了常见的问题及解决方法,为编写高质量的面向对象程序奠定基础。
23 2
|
1月前
|
前端开发 C#
C# 一分钟浅谈:字符串操作与正则表达式
本文详细介绍C#中的字符串操作与正则表达式应用,涵盖字符串拼接、分割、查找及替换等基础操作,并通过实例讲解正则表达式的模式匹配、文本替换与分组捕获技巧。同时,文章还探讨了性能优化、复杂度管理和安全性等问题及解决策略,助你提升编程效率,应对实际开发挑战。
60 0