foreach sur les types anonymes
using System;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
namespace LearningJustCode
{
class Program
{
static void Main(string[] args)
{
Update();
}
static void Update()
{
var quote1 = new { Stock = "DELL", Quote = GetQuote("DELL") };
var quote2 = new { Stock = "MSFT", Quote = GetQuote("MSFT") };
var quote3 = new { Stock = "GOOG", Quote = GetQuote("GOOG") };
var quotes = new object[] { quote1, quote2, quote3 };
foreach (var item in quotes)
{
Console.WriteLine(item.Stock);
Console.WriteLine(item.Quote.ToString());
}
Console.ReadKey();
}
static string GetQuote(string stock)
{
try
{
return InnerGetQuote(stock);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return "N/A";
}
}
static string InnerGetQuote(string stock)
{
string url = @"http://www.webservicex.net/stockquote.asmx/GetQuote?symbol={0}";
var request = HttpWebRequest.Create(string.Format(url, stock));
using (var response = request.GetResponse())
{
using (var reader = new StreamReader(response.GetResponseStream(), Encoding.ASCII))
{
return reader.ReadToEnd();
}
}
}
}
}
Je reçois un squiggley de l'objet;la Variable "point" n'est attribué qu'à. Ce code a été légèrement modifié à partir de Paul Kimmel livre C#, déclenchée par Sam.
Comment sur la question?
avez-vous de laisser le code dans votre boucle foreach?
Eh bien oui, vous l'itération, mais jamais rien faire avec l'article. Par conséquent, seulement affecté.
Le message signifie que le
Pourquoi êtes-vous en utilisant les types anonymes lorsqu'un type normal semble le plus approprié?
avez-vous de laisser le code dans votre boucle foreach?
Eh bien oui, vous l'itération, mais jamais rien faire avec l'article. Par conséquent, seulement affecté.
Le message signifie que le
item
, qui n'existe que dans le champ d'application de cette boucle, n'est jamais utilisé. I. E. c'est redondant et inutile.Pourquoi êtes-vous en utilisant les types anonymes lorsqu'un type normal semble le plus approprié?
OriginalL'auteur dannyrosalex | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Votre tableau doit être du type de stock de vos devis.
Votre cotation des actions est un type anonyme, donc nous avons besoin de définir la matrice de façon anonyme. Cela peut être fait proprement que:
Que faire si mes éléments sont à venir à partir d'un tableau avec une longueur inconnue? Possible de définir vos articles (avec des actions et devis) dynamicly de 2 tableaux?
OriginalL'auteur seraphym
je crois que le problème est dans cette ligne:
devis est un tableau d'objet, pas un tableau de ce type anonyme. le foreach aussi vient de la valeur de l'objet. vous pourriez essayer de former le tableau dans une ligne ou dans une expression lambda
Un très sale solution de contournement est en train de changer 'var' à 'dynamique'
une solution de nettoyage laisse de l '"objet", de sorte que le compilateur peut générer un anonyme, un tableau typé
Merci de ne pas me bousiller. D'autres intervenants ont des problèmes d'attitude!Vous ne savez pas comment mettre en œuvre ce que vous suggérez.
Semble assez facile, Merci!
Cela semble idiot 😉 Mieux faire usage de l'inférence de type et ne
var quotes = new[] { quote1, quote2, quote3 };
. De cette façon, vous pouvez garder levar
mot-clé dans la boucle foreach. EDIT: Ok, je la renvoie. Vu ton edit 😉OriginalL'auteur user287107