如何检查一个项目后面是否跟着列表中的另一个项目?C#.
本文关键字:项目 列表 另一个 是否 检查 何检查 一个 | 更新日期: 2023-09-27 18:31:59
我有这些名字:
Sean
Winnie
Brian Amy
Samir
Joe Bethany
Bruno Anna Matthew Lucas
Gabriel Martha Philip
Andre
Danielle
Leo Cinthia
Paula
Mary Jane
Anderson
Priscilla
Regis Julianna Arthur
Mark Marina
Alex Andrea
该练习说,用一行中的空格分隔的名字不能互相赠送礼物。就像里奥不能给辛西娅送礼物,乔不能给贝瑟尼等。
所以我正在寻找一个可以用来检查的代码,如果我有一个列表并且行被导入到该列表中,那么我想检查是否有某个字符串(比如 Leo 后面跟着 Cinthia)后跟空格,那么这两个人不能互相送礼物。
到目前为止,我在这里:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace SecretSanta
{
class Program
{
static void Main(string[] args)
{
StreamReader File = new StreamReader("SSfile.txt");
List<string> Names = new List<string>();
string line = File.ReadLine();
while (line != null)
{
Console.WriteLine(line);
line = File.ReadLine();
Names.Add(line);
}
Console.ReadKey();
}
}
}
class Program
{
static Dictionary<string, List<string>> Names = new Dictionary<string, List<string>>();
static void Main(string[] args)
{
StreamReader File = new StreamReader("SSfile.txt");
string line = File.ReadLine();
while (line != null)
{
Console.WriteLine(line);
line = File.ReadLine();
var names = line.Split(" ", StringSplitOptions.RemoveEmptyEntries)
Names.Add(names[0], names.Skip(1).ToList());
}
Console.ReadKey();
}
static bool canGive(giver, givee)
{
return Names[giver].Any(item => item == givee);
}
}
问题是,在我对你的问题的理解中,它不会以这种方式工作。
你有一个列表,上面有{'肖恩','温妮',..."乔",贝瑟尼'}所以如果你检查乔是否被贝瑟尼跟踪,然后不允许他给贝瑟尼送礼物,你也会禁止肖恩给温妮送礼物......我认为您需要多个列表来实现此功能。您可以使用包含列表的列表,该列表包含一行中的人员例如 {{'Sean'}, {'Winnie'}, ..., {'Joe', Bethany'}}
希望我正确理解了您的问题。