帕納約蒂斯Kanavos引入了以下巧妙的解決產生LetterNumberNumber在該SOF問題模式:For loop when the values of the loop variable is a string of the pattern LetterNumberNumber?如何在C#中的Enumerable中指導不規則的課程?
var maxLetters=3; // Take 26 for all letters
var maxNumbers=3; // Take 99 for all the required numbers
var values=from char c in Enumerable.Range('A',maxLetters).Select(c=>(char)c)
from int i in Enumerable.Range(1,maxNumbers)
select String.Format("{0}{1:d2}",(char)c,i);
foreach(var value in values)
{
Console.WriteLine(value);
}
A01 A02 A03 B01 B02 B03 C01 C02 C03 D01 D02 D03
有沒有辦法指導Enumerable中的不規則課程? 「Enumerable.Range(1,maxNumbers)」導致01,02,...,99(對於maxNumbers 99)。
限制實例:
1.限制(01,02,...,99)只(01,03,05,07,09,11,13)
2.限制(01,02, ...,99)僅限於(02,04,06,08,10)
3.限制(01,02,...,99)僅限於(01,04,09,10)
我做了什麼:
我工作過「Enumarable」,試過它的方法:Enumerable.Contains(1,3,5,7,9,13)給出了很大的錯誤,我無法實現:
A01 ,A03,A05,...,Z09,Z11,Z13。
如果Enumarable不適合這種類型的工作,您提供什麼來解決這個問題?
使用範圍來索引到包含所需值的數組。 –