如何创建可读的List <string>输出?</string>

时间:2014-05-08 11:54:36

标签: c#

我的代码如下:

public List<string> connect(String query_physician, String query_institution)
{ 
    Regex pattern = new Regex(@"(?<=""link""\:\s"")[^""]*(?="")");
    MatchCollection linkMatches = pattern.Matches(customSearchResult);            
    var list = new List<string>();
    list = linkMatches.Cast<Match>().Select(match => match.Value).ToList(); //put the links into a list?!            

    foreach (var item in list) //take each item (link) out of the list...
    {                
        return item; // ...and return it?! //Error, because item is a string
    }

    return null;
}

就像你看到的那样,我想返回每个链接(作为我的json结果的可读列表并显示在我的RichTextBox中,但我知道,var item是a string。否则它不起作用。要么我成为不可读的列表,要么是字符串(string.Join(.....Cast<>())

我有这个权利,string.Join(.....Cast<>())将单个字符串添加到一起吗?不过,我不希望他们在一起。无论如何,你知道解决这个问题的方法吗?

顺便说一下,return null只是一个通配符。

2 个答案:

答案 0 :(得分:0)

据我所知,这是你上一个问题的延续。假设你有这个功能(我简化了一点):

public List<string> connect(String query_physician, String query_institution)
{
    ...
    return Regex.Matches(customSearchResult, @"(?<=""link""\:\s"")[^""]*(?="")")
                .Cast<Match>()
                .Select(m => m.Value)
                .ToList();
}

您可以执行以下操作:

List<string> list = connect("", "");
string linksFormatted = string.Join(",", list);

在RichTextBox中显示内容:

richTextBox1.AppendText(string.Join(Environment.NewLine, list));

答案 1 :(得分:-2)

查看您的方法签名返回类型是字符串列表无字符串,

这么简单的方法:

public List<string> connect(String query_physician, String query_institution)
{ ...

    //restults container
    List<string> resultContainer = new List<String>(); 

    Regex pattern = new Regex(@"(?<=""link""\:\s"")[^""]*(?="")");
    MatchCollection linkMatches = pattern.Matches(customSearchResult);

    var list = new List<string>();
    list = linkMatches.Cast<Match>().Select(match => match.Value).ToList(); //put the links into a list?!

    foreach (var item in list) //take each item (link) out of the list...
    {
        //add item to list
        resultContainer.Add(item); 
    }
    return resultContainer;

}