gpt4 book ai didi

c# - Linqy 不匹配

转载 作者:太空宇宙 更新时间:2023-11-03 11:52:24 26 4
gpt4 key购买 nike

也许是我做错了什么。我只是因为无聊才学习 Linq。到目前为止一切顺利。我做了一个小程序,它基本上只是将所有匹配项 (foreach) 输出到标签控件中。

用法:在文本框中输入文本,点击按钮。程序允许您选择一个文件来匹配文本框值并返回标签控件中的匹配项。

代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace LinqTests
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

protected internal String[]
Content;
public String
Value;

private void button1_Click(object sender, EventArgs e)
{
Value = textBox1.Text;

OpenFileDialog ofile = new OpenFileDialog();
ofile.Title = "Open File";
ofile.Filter = "All Files (*.*)|*.*";

if (ofile.ShowDialog() == DialogResult.OK)
{
Content =
File.ReadAllLines(ofile.FileName);

IEnumerable<String> Query =
from instance in Content
where instance == Value
orderby instance
select instance;

foreach (String Item in Query)
label1.Text +=
Item + Environment.NewLine;
}
else Application.DoEvents();

ofile.Dispose();
}
}
}

问题除了一件事,我上面的内容完美无缺。我有一个要检查的文件,其中包含以下文本:

文件:


杰森


最有趣



世界
杰森
杰森
杰森
说明

... 而且它永远不会返回“jason”。但它总是会返回其中的任何其他单词。

我猜如果同一匹配项不止一个,它不会返回匹配项?

我这样说对吗?这就是应该的样子吗?您如何建议我让它始终返回匹配项,无论有多少相同的匹配项。我的意思是我会认为它会根据上面的代码返回以下输出...这不是 foreach(Ite​​m in Query) 的用途吗?当我在 textBox1 中键入“jason”时:

杰森
杰森
杰森
杰森

..但它不返回任何 jasons :(

最佳答案

您可能在该行的末尾有一个空白...改为尝试:

            IEnumerable<String> Query =
from instance in Content
where instance.Trim() == Value.Trim()
orderby instance
select instance;

关于c# - Linqy 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1726902/

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