2016-01-06 1 views
-1
var productNameTags = document.DocumentNode.SelectNodes(textBox3.Text); 
       var priceTags = document.DocumentNode.SelectNodes(textBox2.Text); 
       var codeNameAndPrice = productNameTags.Zip(priceTags, (n, w) => new { productNameTags = n, priceTags = w }); 
       int counter = 1; 
       if (codeNameAndPrice != null) 
       { 
        foreach (var nw in codeNameAndPrice) 
        { 
         label1.Visible = true; 
         label1.Text += counter + ". " + nw.productNameTags.InnerHtml + " - " + nw.priceTags.InnerHtml + "\n"; 
        } 
       } 

У меня есть этот код, который смотрит на HTML-теги и печатает название продукта и цену с веб-сайта и печатает как это с помощью .zip:Enumerable.Zip более 2-х коллекций?

  1. Бейсбол - £ 5,00
  2. Футбол - £ 10,00
  3. игрушечных автомобилей - £ 15,00

есть простой способ добавить три или более переменных застегнуть вместе, используя другой метод?

например.

  1. Baseball - £ 5,00 - 1123
  2. Футбол - £ 10,00 - 1124
  3. игрушечных автомобилей - £ 15,00 - 1125

Спасибо заранее!

+0

Вы можете связать команды 'Zip' - где к 1123, 1124 и 1125? –

+0

Возможный дубликат [Zip N IEnumerable s вместе? Итерации над ними одновременно?] (Http://stackoverflow.com/questions/3989319/zip-n-ienumerablets-together-iterate-over-them-simultaneous) –

+0

@RegEdit Желаемый результат этих двух вопросов различен, m не уверен, что он должен быть дублирован ... С другой стороны, ответы могут быть адаптированы для ответа на этот вопрос ... Поэтому держите мой золотой молоток в кармане, а не закрывайте. –

ответ

1

Я не думаю, что вы можете сделать это легко с .zip (бар несколько уровней почтового индекса?), Но вы могли бы сделать это динамически:

var names = new[] { "Baseball", "Football", "Toy Car" }; 
var prices = new[] { 5.0M, 10.0M, 15.0M }; 
var ids = new[] { 1123, 1124, 1125 }; 
var products = names 
    .Select((name, index) => new { Name = name, Price = prices[index], Id = ids[index] }); 
+1

Хорошая точка в способности использовать индекс для слияния (для последовательностей одной длины). Обратите внимание, что предложение индексирования отлично работает с массивом/списком, но для списков узлов Xml/Html скорее всего это O (n), а не O (1) для каждого доступа к индексу, что делает общий код O (n^2) вместо На). –

0

No.

вы можете цепную Zip вызовы, или вы можете написать (или найти) метод расширения/помощника, который будет обращаться к нескольким источникам параллельно, подобно Zip, для обеспечения функциональности, которую вы ищете.

В вашем конкретном случае рассмотрим итерацию по некоторым родительским узлам и выбор отдельных дочерних узлов относительно родительского (при условии, что все узлы для конкретного элемента являются дочерними узлами одного «родительского» узла).

 Смежные вопросы

  • Нет связанных вопросов^_^