foreach uri in

时间:2011-07-23 00:46:07

标签: c# windows-phone-7

嘿,通过网络我似乎找不到如何从我的这一栏中提取这些价值的解决方案,我只在Uni开发了一年,所以这对我来说都是新的。

基本上我不知道该怎么做,并且阅读Linq to SQL以及条件语句和循环并没有让我更接近找到我的解决方案。

就像下面这句话一样简单

  public void SendToast(string title, string message)
    {
       var toastMessage = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
            "<wp:Notification xmlns:wp=\"WPNotification\">" +
               "<wp:Toast>" +
                  "<wp:Text1>{0}</wp:Text1>" +
                  "<wp:Text2>{1}</wp:Text2>" +
               "</wp:Toast>" +
            "</wp:Notification>";
        var messageBytes = System.Text.Encoding.UTF8.GetBytes(toastMessage);
        using (clientsDBDataContext clientDB = new clientsDBDataContext())
        {
            var client = new ServiceFairy.clientURI();
            foreach (string r in client.uri)
            {
                Uri rs = new Uri(r.ToString());
                SendMessage(rs, messageBytes, NotificationType.Toast);
            }
        }
    }

我知道一个事实我做错了但是我无法弄清楚如何解决这个问题, 如果它不会问太多,请解释我是怎么做错的,因为当我不得不请别人帮我解决我自己无法弄清楚的东西时,我感到无用,

谢谢:)

这是我收到的错误消息

Error   1   Cannot convert type 'char' to 'string'

2 个答案:

答案 0 :(得分:2)

这条线在做什么?

var client = new ServiceFairy.clientURI();

除了这不会编译(它需要new ServiceFairy())之外,clientURI()会返回什么?你在这里使用它:

foreach (string r in client.uri)

我怀疑client.uri实际上是字符串。如果没有,那是什么?假设它是一个字符串,那么循环遍历C#中的任何字符串会导致循环遍历字符串中的字符。所以我希望您的编译器错误是由于您将r声明为string,但它实际上是char。很可能你根本不需要循环,但在你解释client.uri实际返回的内容之前我无法回答这个问题。

如果你感到慷慨,也许你可以解释为什么你有一个名为ServiceFairy的班级。 ;)

修改
根据评论,代码应来自:

var client = new ServiceFairy.clientURI();
foreach (string r in client.uri)
{
    Uri rs = new Uri(r.ToString());
    SendMessage(rs, messageBytes, NotificationType.Toast);
}

要:

var client = new ServiceFairy.clientURI();
Uri rs = new Uri(client.uri);
SendMessage(rs, messageBytes, NotificationType.Toast);

答案 1 :(得分:1)

我怀疑client.uri只是一个string,而不是string[]的数组。因此,foreach正在迭代字符串中的每个char

所以你可以把它改成:foreach(char r in client.uri) {...,但我认为这不是你想要的。

放弃整个foreach循环并执行:

Uri rs = new Uri(client.uri);
SendMessage(rs, messageBytes, NotificationtType.Toast);