c#-List<T>的Add()和Append()的区别

今天遇到一个bug:往List< double>里加元素,结果加了半天,长度还是0。。。最后发现是用了Append而不是Add

List<double> d = new List<double>();
for (int i = 0; i < 10; i++)
{
    d.Append(0);
}
Console.WriteLine(d.Count); // 是0

换到Add就可以正确添加元素了。

IEnumarable Append(this IEnumerable source, T element)是在IEnumerable接口上定义的扩展方法,它不会修改原始列表实例,但会返回一个新的枚举,它将在序列的末尾生成指定的元素。

也就是说应该d = XX.Append(data).ToList()。对应的,在序列开头添加值用Prepend

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个 C# 中用于生成随机字符串的类。该类的代码如下: ```csharp using System; using System.Collections.Generic; using System.Text; namespace 卡密生成器 { public class RandomStringGenerator { // 随机字符集,包括大小写字母和数字 private static readonly string AlphanumericChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; // 用于存储已经生成的随机字符串,避免重复 private static HashSet<string> generatedStrings = new HashSet<string>(); // 生成指定数量的随机字符串,每个字符串的长度为 sum public static List<string> GenerateRandomStrings(int count, int sum) { List<string> result = new List<string>(); while (result.Count < count) { string randomString = GenerateRandomString(sum); if (!generatedStrings.Contains(randomString)) { generatedStrings.Add(randomString); result.Add(randomString); } } return result; } // 生成一个长度为 sum 的随机字符串 private static string GenerateRandomString(int sum) { StringBuilder sb = new StringBuilder(); Random random = new Random(); for (int i = 0; i < sum; i++) { int index = random.Next(AlphanumericChars.Length); sb.Append(AlphanumericChars[index]); } return sb.ToString(); } } } ``` 代码解释: 第1-4行:引入命名空间,并定义一个名为 RandomStringGenerator 的公共类。 第6行:定义一个名为 AlphanumericChars 的静态只读字段,表示随机字符集。 第8行:定义一个名为 generatedStrings 的静态 HashSet 字段,用于存储已经生成的随机字符串,避免重复。 第10-18行:定义一个名为 GenerateRandomStrings 的公共静态方法,用于生成指定数量的随机字符串。 第11行:创建一个空的字符串列表,用于存储生成的随机字符串。 第12-17行:使用 while 循环,当字符串列表中的元素数量达到 count 时,停止循环。 第13行:生成一个随机字符串。 第14-16行:如果这个随机字符串没有出现过,则将其添加到字符串列表和已生成的字符串集合中。 第19-27行:定义一个名为 GenerateRandomString 的私有静态方法,用于生成一个长度为 sum 的随机字符串。 第20行:创建一个 StringBuilder 对象,用于存储生成的随机字符串。 第21行:创建一个 Random 对象,用于生成随机数。 第22-26行:使用 for 循环,生成随机字符串。在每次循环中,先生成一个随机数 index,然后从字符集中取出对应位置的字符,并将其添加到 StringBuilder 对象中。 第27行:返回 StringBuilder 对象中存储的随机字符串。 希望这个示例代码能够帮助您理解如何使用 C# 生成随机字符串。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值