c#如何请求url参数和更改字符

c#如何请求url参数和更改字符,c#,url,parameters,request.querystring,namevaluecollection,C#,Url,Parameters,Request.querystring,Namevaluecollection,在获得一些url参数后,我希望稍后在我的c#代码中使用它们,但格式略有不同 "http://example/myexample.aspx?attendees=john.sam&speakers=fred.will.tony.amy.al" 我可以使用以下方法以字符串的形式获取现有格式的值: c#代码 MyAttenders返回(用不带引号的句点分隔) 约翰·萨姆 及 myspeakers返回(用不带引号的句点分隔) 弗雷德。威尔。托尼。艾米。艾尔 但是我想转换它,这样它将返回一个类似这样的字符串

在获得一些url参数后,我希望稍后在我的c#代码中使用它们,但格式略有不同

"http://example/myexample.aspx?attendees=john.sam&speakers=fred.will.tony.amy.al"

我可以使用以下方法以字符串的形式获取现有格式的值: c#代码

MyAttenders返回(用不带引号的句点分隔)

约翰·萨姆

及 myspeakers返回(用不带引号的句点分隔)

弗雷德。威尔。托尼。艾米。艾尔

但是我想转换它,这样它将返回一个类似这样的字符串,带有逗号分隔和单引号的值

“约翰”,“山姆”

“弗雷德”、“威尔”、“托尼”、“艾米”、“艾尔”

在c#中,最好的方法是什么?使用NameValueCollection

*为澄清细节而编辑的问题。
*编辑-修复拼写错误。

此代码将为您提供通过点拆分获得的字符串数组:

string[] speakers;
if (Request.QueryString["speakers"] == null)
    speakers = new string[0];
else
    speakers = Request.QueryString["speakers"].Split('.');

此代码将为您提供一个通过在点上拆分获得的字符串数组:

string[] speakers;
if (Request.QueryString["speakers"] == null)
    speakers = new string[0];
else
    speakers = Request.QueryString["speakers"].Split('.');
试试这个:

public class MyClassGetQueryString
{

    private const string Attendees = "attendees";
    private const string Speakers = "speakers";

    public string MyAttendees()
    {
        return Request.QueryString[MyClassGetQueryString.Attendees] ?? string.Empty;
    }

    public string MySpeakers()
    {
        return Request.QueryString[MyClassGetQueryString.Speakers] ?? string.Empty;
    }

    public string[] MyAttendeesParts()
    {
        return this.MyAttendees().Split('.');
    } 

    public string[] MySpeakersParts()
    {
        return this.MySpeakers().Split('.');
    } 
}
试试这个:

public class MyClassGetQueryString
{

    private const string Attendees = "attendees";
    private const string Speakers = "speakers";

    public string MyAttendees()
    {
        return Request.QueryString[MyClassGetQueryString.Attendees] ?? string.Empty;
    }

    public string MySpeakers()
    {
        return Request.QueryString[MyClassGetQueryString.Speakers] ?? string.Empty;
    }

    public string[] MyAttendeesParts()
    {
        return this.MyAttendees().Split('.');
    } 

    public string[] MySpeakersParts()
    {
        return this.MySpeakers().Split('.');
    } 
}

如果你知道它们总是点分隔的,就把它们分割成一个数组。如果你知道它们总是点分隔的,就把它们分割成一个数组。小的改进:最好为请求引入变量。查询字符串[“扬声器”],这样你就不会计算两次了。对不起,我对C不太熟悉。我正在尝试ekolis的答案,但它对我不起作用。我可能不是所有的语法都正确?ekolis的代码应该在公共字符串myspeakers()的花括号内吗{string[]speakers;如果…是,它应该在myspeakers()方法的花括号内。您会遇到什么错误?您需要将myspeakers()的返回类型从string更改为string[]…我遇到编译错误,因为我没有使用正确的语法。您可以用完整的方法编辑答案吗?我不知道如何将返回值…放在花括号内。我尝试了几种方法,但对我无效。我正在尝试阅读文档,但找不到它。
return speakers;
给我一个错误“无法将类型'string[]隐式转换为'string'小改进:最好为请求引入变量。QueryString[“speakers”]所以你不会计算两次。对不起,我对C#不是很有经验。我正在尝试ekolis的答案,但它对我不起作用。我可能没有所有的语法正确?ekolis的代码应该在公共字符串myspeakers()的花括号内吗{string[]扬声器;如果…是,它应该在myspeakers()方法的花括号中。您得到了什么错误?您需要将myspeakers()的返回类型从string更改为string[]…我遇到编译错误,因为我没有使用正确的语法。您可以用完整的方法编辑答案吗?我不知道如何将返回值…放在花括号内。我尝试了几种方法,但对我无效。我正在尝试阅读文档,但找不到它。
return speakers;
给我一个错误“无法将类型'string[]隐式转换为'string',我也在尝试,但我得到的错误方法必须有返回类型。我得到的“方法必须有返回类型”我也在尝试,但我得到的错误方法必须有返回类型。我得到的“方法必须有返回类型”