c#使用泛型类编写有一个数组,根据输入的内容是否是数字,存储到不同的数组中
时间: 2023-11-27 12:55:32 浏览: 176
浅谈c# 泛型类的应用
可以通过使用泛型类和 LINQ 的方式来实现。
首先,定义一个泛型类,包含两个属性,分别表示存储数字和非数字的数组:
```csharp
class ArraySplitter<T>
{
public List<T> NumberArray { get; set; } = new List<T>();
public List<T> NonNumberArray { get; set; } = new List<T>();
}
```
然后,在主函数中读取用户输入,根据输入的内容是否是数字,将其存储到不同的数组中:
```csharp
static void Main(string[] args)
{
// 读取用户输入的内容
Console.WriteLine("Please enter a series of values separated by space:");
string input = Console.ReadLine();
// 将输入的字符串拆分成一个数组
string[] inputValues = input.Split(' ');
// 创建一个 ArraySplitter 实例
ArraySplitter<string> splitter = new ArraySplitter<string>();
// 遍历输入的数组,根据元素类型将其添加到不同的数组中
foreach (string value in inputValues)
{
if (int.TryParse(value, out int numberValue))
{
splitter.NumberArray.Add(value);
}
else
{
splitter.NonNumberArray.Add(value);
}
}
// 输出结果
Console.WriteLine($"Number Array: {string.Join(", ", splitter.NumberArray)}");
Console.WriteLine($"Non-Number Array: {string.Join(", ", splitter.NonNumberArray)}");
Console.ReadKey();
}
```
在上面的代码中,我们使用 `int.TryParse` 来判断输入的内容是否为数字,如果是,将其添加到 `NumberArray` 中,否则添加到 `NonNumberArray` 中。最后,输出结果即可。
注意,我们在定义 `ArraySplitter` 类时使用了泛型,这是为了支持不同类型的数组。如果需要处理的是整数数组,可以将 `ArraySplitter` 定义为 `ArraySplitter<int>`。
阅读全文