编写C#控制台程序,输入正整数LM,然后输入LM个小写字母表示集合A,再输入LM个小写字母表示集合B,要求计算并输出集合A与集合B的并集。注意:并集中不能有重复的元素;在输出结果时,先输出集合A中的元素。特别地,要保证每个输出元素在集合中的相对顺序。
时间: 2024-12-10 21:55:34 浏览: 10
怎样在控制台里面输入密码的时候显示星
在C#中编写一个控制台程序来实现这个需求,你可以按照以下步骤:
1. 首先,创建一个控制台应用程序项目。
```csharp
using System;
using System.Collections.Generic;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
// 获取用户输入
Console.Write("请输入正整数 LM:");
int LM = Int32.Parse(Console.ReadLine());
List<char> setA = GetInputAndRemoveDuplicates("集合A:", 'a', LM);
List<char> setB = GetInputAndRemoveDuplicates("集合B:", 'b', LM);
// 计算并集
List<char> unionSet = MergeSets(setA, setB);
// 输出集合A,然后是并集
OutputCollection(setA, "集合A:");
OutputCollection(unionSet, "并集:");
Console.ReadKey();
}
private static List<char> GetInputAndRemoveDuplicates(string prompt, char startChar, int size)
{
List<char> inputList = new List<char>();
for (int i = 0; i < size; i++)
{
Console.Write($"{prompt}{i + 1}: ");
char c = Console.ReadKey(true)..KeyChar;
if (!inputList.Contains(c) && Char.IsLower(c))
{
inputList.Add(c);
}
}
return inputList;
}
private static List<char> MergeSets(List<char> setA, List<char> setB)
{
setA.AddRange(setB);
return RemoveDuplicates(setA);
}
private static List<char> RemoveDuplicates(List<char> list)
{
HashSet<char> uniqueSet = new HashSet<char>(list);
return uniqueSet.ToList();
}
private static void OutputCollection(List<char> collection, string name)
{
Console.WriteLine($"--- {name} ---");
foreach (char item in collection)
{
Console.Write(item);
}
Console.WriteLine();
}
}
}
```
在这个程序中,`GetInputAndRemoveDuplicates`函数用于获取用户输入并去除重复字符,`MergeSets`函数计算两个集合的并集,`RemoveDuplicates`函数用于移除列表中的重复项,最后`OutputCollection`函数负责按顺序输出集合。
运行程序后,它会提示用户输入正整数LM及对应的字母,并计算并输出它们的并集。
阅读全文