У меня есть способ объединить строки, предоставленные int?
.Невозможно иметь дело с IEnumerable <int?> в общем
public string ConcatenateNumber(IEnumerable<int?> myList)
{
return myList
.Distinct()
.Aggregate(
new StringBuilder(),
(current, next) => current.Append("'").Append(next))
.ToString()
.Substring(1);
}
Теперь я хочу выполнить единичный тест.
[TestMethod]
public void InputIntegers_Should_Be_Concatenated_When_Consider_Distinct()
{
var myList = CreateEnumerable(1, 2, 2, 3);
var logic = new MainLogic();
var result = logic.ConcatenateNumber(myList);
Assert.AreEqual("1'2'3", result);
}
public IEnumerable<T> CreateEnumerable<T>(params T[] items)
{
if (items == null)
yield break;
foreach (T mitem in items)
yield return mitem;
}
Однако у меня есть ошибка компиляции.
C#: Неизвестный метод ConcatenateNumber (System.Collections.Generic.IEnumerable) из ....
Я думаю, что это вызвано обнуляемыми целым int?
. Но я не уверен, как это исправить.
Просто укажите тип, как это 'CreateEnumerable (1,2,2,3)'. –
juharr
'IEnumerable' is not 'IEnumerable ' ... и я не думаю, что вы захотите этого '.Substring (1)' –
Без подстроки (1) результат будет равен '1'2'3. Но я хочу 1'2'3. – Bigeyes