小编Dim*_*dis的帖子

检查list是否包含包含字符串的元素并获取该元素

在寻找这个问题的答案时,我遇到过类似的问题,但是我还没有完全理解它们(因此,实现它们),因为我对它并不熟悉.基本上,我想要的是:

  1. 检查列表中的任何元素是否包含特定字符串.
  2. 如果是,请获取该元素.

老实说,我不知道我会怎么做.我能想到的是这个(当然不起作用):

if (myList.Contains(myString))
    string element = myList.ElementAt(myList.IndexOf(myString));
Run Code Online (Sandbox Code Playgroud)

我知道为什么它不起作用:

  • myList.Contains()不返回true,因为它将检查列表的整个元素是否与我指定的字符串匹配.
  • myList.IndexOf() 将找不到事件,因为再次出现这种情况,它将检查与字符串匹配的元素.

尽管如此,我还不知道如何解决这个问题,但我认为我必须按照类似问题的建议使用LINQ.话虽如此,如果是这种情况,我希望回答者在他们的例子中向我解释LINQ的使用(正如我所说的,我在C#时代并没有对它感到困扰).先谢谢你们(和加尔斯?).

编辑:我想出了一个解决方案; 只需遍历列表,检查当前元素是否包含字符串,然后设置一个等于当前元素的字符串.我想知道,有没有比这更有效的方法?

string myString = "bla";
string element = "";

for (int i = 0; i < myList.Count; i++)
{
    if (myList[i].Contains(myString))
        element = myList[i];
}
Run Code Online (Sandbox Code Playgroud)

.net c# linq contains list

125
推荐指数
5
解决办法
47万
查看次数

为什么我不能在For循环中使用==?

我不知道以前是否曾经问过,但我还是找不到答案.我的问题是这个; 在For循环中,这是可以接受的.

int k = 0;

for (int i = 0; i <= 10; i++)
    k++;
Run Code Online (Sandbox Code Playgroud)

但这不是:

int k = 0;

for (int i = 0; i == 10; i++)
    k++;
Run Code Online (Sandbox Code Playgroud)

为什么我不能用'=='来确定条件是否已经满足?我的意思是,两个表达式根据情况返回true或false,后者适用于If循环.

int k = 10;

if (k == 10)
{
    // Do stuff.
}
Run Code Online (Sandbox Code Playgroud)

这个问题的答案在我作为业余爱好者的程序员期间一直困扰着我,但直到现在我还没有找到它.

c# for-loop

4
推荐指数
3
解决办法
288
查看次数

有没有办法在没有TextChanged触发的情况下清除TextBox的文本?

在我的应用程序中,我想TextBox在某些情况下处理输入(例如,某些条件没有填充),因为KeyDown它仅对键盘输入有用,但不是从剪贴板实际粘贴(我不想经历麻烦无论如何使用Win32调用这样做,我想我只是处理我的主要TextBox TextChanged事件中的所有内容.但是,当有"错误"并且用户无法输入时,如果我要调用TextBox.Clear();它,TextChanged会再次触发,这是可以理解的,因此消息也会显示两次.那有点烦人.我只能在这种情况下处理TextChanged?示例代码(内部txtMyText_TextChanged):

if (txtMyOtherText.Text == string.Empty)
{
    MessageBox.Show("The other text field should not be empty.");

    txtMyText.Clear(); // This fires the TextChanged event a second time, which I don't want.

    return;
} 
Run Code Online (Sandbox Code Playgroud)

c# textbox event-handling textchanged

3
推荐指数
1
解决办法
2846
查看次数

同时输入两个文本框

我在jQuery(在这里找到)中遇到了类似的问题,我试图根据我在C#中的需要对其进行修改,但我没有设法做到这一点.我想要的是标题所说的内容,我希望用户在一个文本框中键入一些文本,并将结果同时显示在另一个文本框中.这是我的看法(很明显,它不起作用),我试图KeyUp将第一个文本框的事件的参数传递给第二个文本框的相应事件,但看起来并不那么容易:

public mainFrm()
{
    InitializeComponent();

    this.txtFormat.KeyUp += new KeyEventHandler(txtFormat_KeyUp);
    this.txtNewFormat.KeyUp += new KeyEventHandler(txtNewFormat_KeyUp);
}

private void txtFormat_KeyUp(object sender, KeyEventArgs e)
{
    txtNewFormat_KeyUp(sender, e);
}

private void txtNewFormat_KeyUp(object sender, KeyEventArgs e)
{
}
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助.

c# textbox

2
推荐指数
1
解决办法
233
查看次数

我可以使用Visual C++进行使用gcc编译的作业吗?

我被指派为一个编程竞赛做一个项目,并在他们的网站上声明他们将使用gcc 3.3.4编译器测试程序.所以,我想知道的是,我可以安全地使用Visual C++进行项目,但不使用.NET便利(即创建本机Win32应用程序)?我可以下载他们提供的工具之一,但我更习惯Visual Studio的环境.你们有什么感想?

c++ gcc visual-studio

1
推荐指数
1
解决办法
103
查看次数

替换列表中的字符串不起作用

在我的生活中,我不能理解为什么Replace();当我尝试替换String类型列表中的元素文本时该方法不起作用.这个问题在某种程度上与我之前的一个帖子有关[在这里找到:合并两个文件并处理重复的条目(对于完整的代码,查看它也是一个好主意)],但最后当天,这一切归结为命令不起作用,而我的代码实际上是正确的(!).

我会举例说明在我的情况下什么不起作用.在最基本的形式中,为了举例,这是我想要完成但它不起作用(真实!):

[在我的原始代码中,我已经三次检查(使用断点和所有内容)我的列表确实包含我要替换的字符串(我正在替换元素本身!),但它不会这样做!严肃地说,现在它是一个4元素列表(尽管可以添加更多元素,参考其他线程).

最后一件事,对标点符号感到遗憾(我知道的感叹号太多了),但我实际上对此持续不满.下面的代码(记住,最基本的形式,但我试过的一个例子):

// List[index].Replace(oldValue, newValue);
newFile[3].Replace(newFile[3], "Replace it with this!");
Run Code Online (Sandbox Code Playgroud)

你能帮帮我吗?

c# string replace list str-replace

0
推荐指数
1
解决办法
442
查看次数