我的代码搜索列表,然后如果找到匹配项,它会在列表框中显示该对象。我的问题是,如果列表中有多个对象(如果我正在搜索Alex并且有两个名为Alex的对象),则它会在同一行返回所有对象,而不是将它们分隔为单独的行。
我能发誓match += request + "\n";
是如何正确地做到的,但它不起作用。
编辑:我不明白的一件事是,如果我只有match += request;
,它将允许我使用列表框上的水平滚动条来查看所写的所有内容。如果我使用match += request + "\n";
或match += request + Environment.NewLine;
,则不允许我使用滚动框,只是切断。
public string SearchRequest(string keyword)
{
bool found = false;
string noMatch = "No requests with the name " + "'" + keyword + "'" + " were found";
string match = "";
foreach (ServiceRequest request in Requests)
{
if (request.searchKeywords(keyword))
{
match += request + "\n";
found = true;
}
}
if (found)
return match;
else
return noMatch;
}
/
public bool searchKeywords(string keyword)
{
if (keyword == name)
return true;
else
return false;
}
/
private void btnSearch_Click(object sender, EventArgs e)
{
lstSearch.Items.Clear();
lstSearch.Items.Add(myRequest.SearchRequest(txtSearch.Text));
}
答案 0 :(得分:4)
尝试
match += request + Environment.NewLine;
答案 1 :(得分:3)
如果您将所有结果放在一个字符串中,那么它仍然是列表中的单个项目。
从方法中返回一个字符串数组,而不是单个字符串:
function compress_image($src, $dest , $quality)
{
$upload_dir = wp_upload_dir();
$info = getimagesize($src);
if ($info['mime'] == 'image/jpeg')
{
$image = imagecreatefromjpeg($src);
}
elseif ($info['mime'] == 'image/gif')
{
$image = imagecreatefromgif($src);
}
elseif ($info['mime'] == 'image/png')
{
$image = imagecreatefrompng($src);
}
else
{
die('Unknown image file format');
}
if (!file_exists($upload_dir['path'] . '/compress')) {
mkdir($upload_dir['path'] . '/compress', 0777, true);
}
imagejpeg($image, $dest, $quality);
}
然后使用public string[] SearchRequest(string keyword) {
List<string> match = new List<string>();
foreach (ServiceRequest request in Requests) {
if (request.searchKeywords(keyword)) {
match.Add(request.ToString());
}
}
if (match.Count > 0) {
return match.ToArray();
} else {
return new string[] { "No requests with the name " + "'" + keyword + "'" + " were found" };
}
}
将字符串添加为列表中的单独项目:
AddRange
答案 2 :(得分:0)
在Windows操作系统中,新行是两个字符,回车符\r
后跟换行符:\n
。您可以使用Environment.NewLine
作为快捷方式(首选)或自己附加"\r\n"
。请参阅wikipedia entry on newline
答案 3 :(得分:0)
使用以下其中一项:
match += request + "\r\n";
使用字符串文字:
match += request + @"
";
OR仅在运行时解析:
match += request + System.Environment.NewLine;
在Unix上"\n"
答案 4 :(得分:0)
您无法将包含换行符的字符串添加到列表框中,并希望它显示为多个项目。在换行符上拆分字符串并将每行分别添加到列表框中,或者从搜索功能开始返回字符串列表,以避免之后需要拆分。