正确使用\ n?

时间:2015-11-20 22:46:12

标签: c#

我的代码搜索列表,然后如果找到匹配项,它会在列表框中显示该对象。我的问题是,如果列表中有多个对象(如果我正在搜索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));

        }

5 个答案:

答案 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)

您无法将包含换行符的字符串添加到列表框中,并希望它显示为多个项目。在换行符上拆分字符串并将每行分别添加到列表框中,或者从搜索功能开始返回字符串列表,以避免之后需要拆分。