【问题标题】:check if list item is substring of a string [closed]检查列表项是否是字符串的子字符串 [关闭]
【发布时间】: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


【解决方案1】:

如果您确定它是Page.Request.Params["__EVENTTARGET"] 中的字符串,则您提供的代码将起作用:https://repl.it/C4ts/0

所以很可能存在超出您提供的范围的问题。尝试检查代码中是否还有其他可能导致无限递归的地方。

【讨论】:

    猜你喜欢
    • 2011-06-18
    • 2013-04-29
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多