Windows phone 7 C#windows phone 7中数组的索引

Windows 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 })

我试图只获取数组列表的奇数或偶数索引。 例如,我的数组列表是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 })
                 .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; }
}