如何将数组中的元素从列表传递到列表?c#

如何将数组中的元素从列表传递到列表?c#,c#,arrays,list,C#,Arrays,List,预告 -用户在控制台中输入数据 -将数据保存在由2个元素组成的数组中[2] -在列表中保存包含2个元素的数组 *现在我试图实现的是,用户可以检查搜索是否在列表中,而不管它是用小写还是大写写的 List<string[]>MyList = new List<string[]>(); var[] myArray = new [] { "A", "B" }; MyList.Add(myArray); int y = 0; Console.WriteLine("Inp

预告

-用户在控制台中输入数据

-将数据保存在由2个元素组成的数组中[2]

-在列表中保存包含2个元素的数组

*现在我试图实现的是,用户可以检查搜索是否在列表中,而不管它是用小写还是大写写的

List<string[]>MyList = new List<string[]>();
var[] myArray = new [] { "A", "B" };
MyList.Add(myArray);    

int y = 0;

Console.WriteLine("Inpu what you are Searching For: ");
string serchString = Console.ReadLine();
serchString = serchString.ToLower();

for (int i = 0; i < MyList.Count; i++)
{
    List<object> oneTimeList = new List<object>();
    oneTimeList.AddRange(myList[i]);

    Console.WriteLine(oneTimeList);

    if (MyList[i].Contains(serchString.ToLower()))
    {
        Console.WriteLine("Yes you have added this");
    }
    else if (!myList[i].Contains(serchString))
    {
        y += 1;
    }
}

if (y == myList.Count)
{
    Console.WriteLine("You Have not entered this Yet");
}
ListMyList=newlist();
var[]myArray=new[]{“A”,“B”};
添加(myArray);
int y=0;
WriteLine(“Inpu您正在搜索的内容:”);
字符串serchString=Console.ReadLine();
serchString=serchString.ToLower();
for(int i=0;i
我的逻辑(可能不是地球上最好的:p)说,我必须将数组中的所有元素依次与用户进行的搜索进行比较,如果是真的,则继续进行,为了做到这一点,我需要首先获取列表中数组的信息,并将其转换为列表,然后将其转换为小写。 一切都很顺利,直到我尝试将数组添加到列表中,而我添加的只是数组[]


关于如何处理这个问题,或者如何将列表中的数组元素传递到新列表中,有什么建议吗?

听起来好像想要获取一个字符串数组(假设您提到了小写),将它们全部添加到列表中,小写,然后进行比较

在这种情况下,你不需要做任何事情。您可以简单地执行以下操作:

var myArray = new [] { "A", "B", "C" }
var toCheck = "a";

//Use the IEnumerable<T>.Contains() Linq extension
if (myArray.Contains(toCheck, StringComparer.OrdinalIgnoreCase))
{
    //...
}
var myArray=new[]{“A”、“B”、“C”}
var toCheck=“a”;
//使用IEnumerable.Contains()Linq扩展名
if(myArray.Contains(toCheck,StringComparer.OrdinalIgnoreCase))
{
//...
}
如果确实要将它们添加到列表中,我不能给出使用代码的示例,但要“将数组的元素传递到新列表”,可以执行以下任一操作:

//List<T>(IEnumerable<string>) constructor
var newList = new List<string>(myListOfStrings);

//List<T>.AddRange(IEnumerable<string>)
var newList = new List<string>();
newList.AddRange(myListOfStrings);

//List<T>.Add(T) (adding items one at a time)
var newList = new List<string>();
newList.Add(myListOfStrings[index]);
//列表(IEnumerable)构造函数
var newList=新列表(myListOfStrings);
//List.AddRange(IEnumerable)
var newList=新列表();
AddRange(myListOfStrings);
//列表。添加(T)(一次添加一个项目)
var newList=新列表();
Add(myListOfStrings[index]);
这里还值得注意的是,上面对
myListOfStrings
的任何引用都可以是字符串数组(
string[]
)或字符串列表(
list
),因为它们都实现了
IEnumerable
,这是上述方法所需的类型(除了需要单个项的Add)


以下是详细介绍如何使用上述每种方法(以及所有其他可用方法…)的文档

您提到的问题是,当您尝试将数组添加到列表中时,我在你的代码中没有看到你试图在列表中添加任何内容。是的,我从原始代码中删除了它,以查看是否有更好的解决方案可以指导我,但似乎我在编写过程中遇到了一些问题。在我正确地输入“精确”之前,对我来说没有任何意义带有大写字母和小写字母的信息(我真的不知道为什么它能正确工作,我会在后面找到),但这里的问题是,我添加到列表中的是一个数组,而不是它的元素。如果我打印,这是输出System.Collections.Generic.List`1[System.Object],我不能使用小写形式。我已经更新了答案,以帮助您处理案例比较部分(因此您不需要将所有内容都小写)。看起来你打算用小写字母写的列表实际上包含了更多的列表?我更新了我的问题以提供更多的信息。你第一次提到我在哪里创建了一个数组,然后把它放在列表中,让列表小写,这正是我需要的(也许有其他方法可以做到,但如果我能做到这一点,它会工作得很好)
Console.WriteLine(oneTimeList)
将打印出类型名称,因为
oneTimeList
是一个
列表
。。。不过,你似乎没有在其他任何地方使用它?这在控制台上是正确的;我把它放在那里只是为了验证我正在添加到列表中,现在它是一个列表。我如何访问该列表并使其小写?