Windows phone 7 C#windows phone 7中数组的索引
我试图只获取数组列表的奇数或偶数索引。 例如,我的数组列表是20。 我想把奇数和偶数分开 奇数:1,3,5,7,9,11,13,15,17,19 偶数:2,4,6,8,10,12,14,16,18,20Windows phone 7 C#windows phone 7中数组的索引,windows-phone-7,isolatedstorage,Windows Phone 7,Isolatedstorage,我试图只获取数组列表的奇数或偶数索引。 例如,我的数组列表是20。 我想把奇数和偶数分开 奇数:1,3,5,7,9,11,13,15,17,19 偶数:2,4,6,8,10,12,14,16,18,20 我该怎么做呢???在WindowsPhone7上,我会这样做 var values = Enumerable.Range(1, 21).ToList(); var even = values.Select((value, index) => new { value, index })
我该怎么做呢???在WindowsPhone7上,我会这样做
var values = Enumerable.Range(1, 21).ToList();
var even = values.Select((value, index) => new { value, index })
.Where(elt => elt.index % 2 == 0)
.Select(elt => elt.value);
var odd = values.Select((value, index) => new { value, index })
.Where(elt => elt.index % 2 != 0)
.Select(elt => elt.value);
我也倾向于在任何其他.NET平台上使用类似的代码…您可以编写自己的扩展来“优化内容”。类似于以下的方法应该可以工作:
public static class MyExtensions {
public static IEnumerable<T> EveryOther<T>(this IEnumerable<T> items, int startIndex) {
if (items == null) throw new ArgumentNullException("items");
int count = 0;
foreach (T item in items) {
if (startIndex > 0) {
startIndex--;
continue;
}
else if (count % 2 != 0)
continue;
count++;
yield return item;
}
}
}
建造这样一个结构不是更有意义吗
class QuizItem
{
public string Question { get; set; }
public string Answer { get; set; }
}
并将这些元素组成一个数组,而不是误用数组索引?要将它们分开吗。。对于我的测验,我可以把它定义为奇数是答案,偶数是问题。他指的是奇数或偶数索引,集合/数组中没有值。因为我的测验有四个选项,其中只有一个选项是正确答案。@ben tan:如果你有四个答案,你所要做的就是从一个字符串切换到一个字符串数组:
public string[]answer{get;set;}
这确实是最好的方法,正如约翰·加德纳所说,其他一切都在滥用数组索引。
class QuizItem
{
public string Question { get; set; }
public string Answer { get; set; }
}