Как я могу преобразовать IEnumerable <T> для Списка <T> в C#?

Вы могли бы хотеть получить все флажки, выполняющие querySelector, а затем проверить, какой из них отмечен, а какой не выбран. Я добавил две функции с ним, вы можете просто запустить одну для цикла и сделать ту же логику.

function getUncheckedValues() {
  const obj = {};
  Array.from(document.querySelectorAll('input[type="radio"]'))
  .forEach((checkbox) => {
      obj[checkbox.value] = checkbox.checked
  });
  console.log(obj);
  return obj;
}

const resultEl = document.getElementById('checkedresult');
const resultUncheckEl = document.getElementById('uncheckedresult');

document.getElementById('showResult').addEventListener('click', () => {
  const values = getUncheckedValues();
  console.log(values);
  const newRef = firebase.database().ref('messages').push();
  newRef.set(values);
});
<label>  <input type="radio" name="q0" value="a1" id="a1" class="radio"> IMAGE 1 <br><br><br> </label>
          <label>  <input type="radio" name="q0" value="a2" id="a2" class="radio"> IMAGE 2 <br><br><br> </label>
          <label>  <input type="radio" name="q0" value="a3" id="a3" class="radio"> IMAGE 3 <br><br><br> </label>
          <label>  <input type="radio" name="q0" value="a4" id="a4" class="radio"> IMAGE 4 <br><br><br> </label>
          <label>  <input type="radio" name="q0" value="a5" id="a5" class="radio"> IMAGE 5 <br><br><br> </label>


<br><br>
<button id="showResult">Show checked values</button>
<br><br>
<div id="checkedresult"></div>
<div id="uncheckedresult"></div>

17
задан travis 28 August 2008 в 05:23
поделиться

4 ответа

Попробуйте это:

var matches = dict.Values.Where(rec => rec.Name == "foo").ToList();

знать, что это будет по существу создавать новый список из набора исходных значений, и таким образом, любые изменения в Вашем словаре не будут автоматически отражены в Вашем связанном элементе управления.

29
ответ дан 30 November 2019 в 11:18
поделиться

Я склонен предпочитать использовать новый синтаксис Linq:

myListView.DataSource = (
    from rec in GetAllRecords().Values
    where rec.Name == "foo"
    select rec ).ToList();
myListView.DataBind();

, Почему Вы получаете словарь, когда Вы не используете ключ? Вы платите за те издержки.

9
ответ дан 30 November 2019 в 11:18
поделиться

Вы могли бы также попробовать:

var matches = new List<Record>(dict.Values.Where(rec => rec.Name == "foo"));

В основном универсальные наборы очень трудно бросить непосредственно, таким образом, у Вас действительно есть мало выбора, но создать новый объект.

3
ответ дан 30 November 2019 в 11:18
поделиться
myListView.DataSource = (List<Record>) dict.Values.Where(rec => rec.Name == "foo");
1
ответ дан 30 November 2019 в 11:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: