gpt4 book ai didi

c# - 使用 LINQ 将项目插入堆栈

转载 作者:太空狗 更新时间:2023-10-30 00:12:57 24 4
gpt4 key购买 nike

我如何以编程方式将字符串数组推送到通用堆栈中?

字符串数组

 string[] array=new string[]{"Liza","Ana","Sandra","Diya"};

堆栈设置

 public class stack<T>
{
private int index;

List<T> list;

public stack()
{
list = new List<T>();
index=-1;

}

public void Push(T obj)
{

list.Add(obj);
index++;
}
...........
}

我需要找什么零钱?

stack<string> slist = new stack<string>();
var v = from vals in array select (p => slist.Push(p));

错误报告:

The type of the expression in the select clause is incorrect.

最佳答案

LINQ 是一种查询语言/框架。您想要在此处执行的是对集合对象的修改,而不是查询(选择)- 这肯定不是LINQ 的设计目的(或什至能够) .

然而,您可能想要为 Stack<T> 定义一个扩展方法。类,但是。请注意,在这里使用 BCL Stack<T> 也很有意义类型,这正是您所需要的,而不是使用 List<T> 重新发明轮子.

public static void PushRange<T>(this Stack<T> source, IEnumerable<T> collection)
{
foreach (var item in collection)
source.Push(item);
}

这将允许您执行以下操作:

myStack.PushRange(myCollection);

如果您还不相信,还有另一个哲学原因:创建 LINQ 是为了将函数式范例引入 C#/.NET,而函数式编程的核心是无副作用代码。因此,将 LINQ 与状态修改代码结合起来会非常不一致。

关于c# - 使用 LINQ 将项目插入堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1594264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com