首页 > 编程语言 >在C#中使用默认值初始化字符串数组的3种方式

在C#中使用默认值初始化字符串数组的3种方式

时间:2023-05-12 12:45:16浏览次数:42  
标签:初始化 string C# 数组 字符串 array 默认值

在本文中,您将学习到新建字符串数组如何设置默认值。数组是可以使用索引访问的相同类型的元素的集合。对于字符串数组,每个元素都是一个字符串值。在 C# 中创建新的字符串数组时,默认值为 null。但是,在某些情况下,您可能希望使用特定的默认值而不是 null 初始化字符串数组。例如,希望 Array 的所有元素都有初始默认值(比如来源城市,默认为“未知”)。

在 C# 中使用数组的方式如下,一般初始化为null。

//以下五个元素的字符串数组;每个初始化为 null
string[] myArray = new string[5];
//访问方式
string firstElement = myArray[0];
//firstElement的结果为null

如果指定初始化字符串数组的值不为null,而有默认的值,怎么实现呢?下面有三种方法实现默认值初始化字符串数组。

1、Enumerable.Repeat

在 C# 中,Enumerable.Repeat 方法可以用来创建一个包含指定元素重复若干次的序列。首先Enumerable.Repeat生产指定元素的若干序列,然后用ToArray()转换成数组。代码如下:

public class Program
{
    public static void Main()
{
        string element = "未知";
        int count = 10;
        string[] array = Enumerable.Repeat(element, count).ToArray();
        Console.WriteLine(String.Join(",", array));
    }
}

上面代码初始化元素为”未知“,数量为10个。最后用String.Join 方法用逗号隔开打印出数组的内容。

输出

图片

2、使用for循环

for 循环是初始化数组的推荐方法。下面的代码演示如何使用 for 循环在 C# 中用初始值填充数组。

public class Program
{
    public static void Main()
{
        string element = "未知";//初始化值为未知
        int count = 10;
        //新建一个字符串数组,长度为10
       string[] array = new string[count];
        for (int i = 0; i < count; i++)
        {
            array[i] = element;
        }
        Console.WriteLine(String.Join(",", array));
    }
}

这是一个 C# 程序,它创建一个整数数组,将每个元素初始化为值 2,然后使用

输出

图片


3、使用Array.Fill

在 C# 中,Array.Fill 方法可以用来为数组中的元素赋值。

语法

Array.Fill(array, value);

第一个参数表示我们要填充的 Array,第二个参数定义我们要为每个数组索引提供的值。由于此方法是静态和通用的,因此我们可以将其与任何对象类型的数组一起使用,并且不需要实例化程序类来使用它。

下面我们实现上面案例的填充,代码如下

public class Program
{
    public static void Main()
{
         string element = "未知";//初始化值为未知
        int count = 10;
        //新建一个字符串数组,长度为10
       string[] array = new string[count];
       //使用Array.Fill填充
        Array.Fill(array, element);
        Console.WriteLine(String.Join(",", array));
    }
}
//欢迎关注公众号:DOTNET开发跳槽,领取海量面试题。加微信号xbhpnet入群

输出

图片

结语

本文介绍了如何在C#中使用默认值初始化字符串数组的3种方式,小编推荐使用方法2和方法3。希望本文对你有所帮助,欢迎大家留言和吐槽。

参考:微软官方文档

来源公众号:DotNet开发跳槽

标签:初始化,string,C#,数组,字符串,array,默认值
From: https://www.cnblogs.com/xbhp/p/17393758.html

相关文章

  • PostMan 調用WebServices 方法説明
    智慧系统接口 1.     webservices接口説明--> http://10.66.101.185/fService/services/CheckSNAndLine.asmx方法--》getCheckResult检查传递SN和线体以及轨道代码检查条码是否正确 参数stringsn条码stringlin......
  • 漏洞分析丨CVE-2012-1873
    一、漏洞简述cve-2012-1873同样是一个著名的堆溢出漏洞,他是IE6-8中MSHTL.dll中的CTableLayout::CalculateMinMax函数里,程序在执行时会以HTML代码中的元素span属性作为循环控制次数向堆中写入数据。第一次会优先根据span申请堆空间,当我们增大span的值后,却不会改变堆空间大小,这样就......
  • JDBC 数据库连接池之Driud
    1数据库连接池简介数据库连接池是个容器,负责分配、管理数据库连接(Connection)它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏好处资源重用提升系统响应速度避免......
  • K8S RuntimeClass
    本文的主要内容就到此为止了,这里为大家简单总结一下:RuntimeClass是Kubernetes一种内置的集群资源,主要用来解决多个容器运行时混用的问题;RuntimeClass中配置Scheduling可以让Pod自动调度到运行了指定容器运行时的节点上。但前提是需要用户提前为这些Node设置好label;......
  • I2C总线 | I2C总线介绍
    I2C总线|I2C总线介绍目录I2C总线|I2C总线介绍I2C总线介绍I2C有如下特点:I2C总线术语I2C总线位传输IIC总线数据传输1.字节格式2.应答响应IIC总线寻址方式1.7位寻址2.10位寻址快速和高速模式1.快速模式2.高速模式I2C总线介绍I2C(Inter-IntergratedCircuit)总线(也称IIC......
  • K7+6678信号处理板 方案 原理图 pcb
    K7+6678信号处理板方案原理图pcbID:697998666561644191......
  • flutter Android SDK not configed
    https://stackoverflow.com/questions/64359564/error-java-home-is-not-set-and-no-java-command-could-be-found-in-your-flutterflutterconfig--android-studio-dir="C:\ProgramFiles\Android\AndroidStudio"......
  • kube-bench
    安全是一个绕不开的话题,那么,在云原生领域,在kubernetes内更加的需要安全。毕竟没有人愿意自己的项目是千疮百孔,适当的安全可以保证项目或者平台稳定高效的运行。安全性是一个永远不会消失的问题,无论该技术推出多长时间都无关紧要。因此,我们应该始终使用kubebench、kube-hunter......
  • 关于java中execl导入和导出的问题
    前言:最近没有更新,懈怠了。前两天刚写了一个execl导出的需求,过来总结一下这方面的内容大概在很久很久以前,微软的电子表格软件Excel以操作简单、存储数据直观方便,还支持打印报表,在诞生之初,可谓深得办公室里的白领青睐,极大的提升了工作的效率,不久之后,便成了办公室里的必备工具。随......
  • 高效率华 为16KW三相PFC程序方案: 98.916%效率、功率因数0.9995、电流
    高效率华为16KW三相PFC程序方案:98.916%效率、功率因数0.9995、电流谐波2.287%,在三相交流源输入380Vac,输出720Vdc、16KW时。本方案在华为充电模块R75020G1机上进行重新设计包括:1、PFC板原理图(AltiumDesigner10),保证99%的线路正确。2、整个CCS工程文件,C语言程序。3、半导体器件......