【发布时间】:2016-10-24 07:04:46
【问题描述】:
我编写了这段代码来检查列表项是否是字符串的一部分。
var postBackControl = Page.Request.Params["__EVENTTARGET"];
var postBackNotRemoveRowsColumns = new List<string> { "button1", "button2", "button3", "button4" };
bool isPostBackExistInList = false;
if (postBackControl != null)
{
isPostBackExistInList = postBackNotRemoveRowsColumns.Any(postBackControl.Contains);
}
但我遇到了这个崩溃:
System.StackOverflowException 未处理{无法评估 表达式,因为当前线程处于堆栈溢出状态。}
有人可以帮忙吗?
【问题讨论】:
-
postBackControl的内容是什么? -
什么是
postBackControl.Contains? -
postBackControl 是 asp.net 中按钮的自动生成 id,我想检查 id(作为字符串)是否包含列表中的字符串之一。
-
还有这个用什么方法?我不确定你是否理解
StackOverflowException是什么,但它基本上说你有某种没有终止的递归调用。这意味着正在进行一些最终调用自身的方法调用。鉴于可以这样做,我在您的代码中看不到任何内容... -
但是,如果您只运行一次,此代码不会导致异常。也许有一个你没有考虑过的外循环?
标签: c# linq list generics exception