我需要一个优雅的方法,它采用一个可枚举的方法,并获得可枚举的枚举数,每个元素中包含相同数量的元素但最后一个:
public static IEnumerable<IEnumerable<TValue>> Chunk<TValue>(this IEnumerable<TValue> values, Int32 chunkSize)
{
// TODO: code that chunks
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
public static IEnumerable<IEnumerable<TValue>> Chunk<TValue>(this IEnumerable<TValue> values, Int32 chunkSize)
{
var count = values.Count();
var numberOfFullChunks = count / chunkSize;
var lastChunkSize = count % chunkSize;
for (var chunkIndex = 0; chunkSize < numberOfFullChunks; chunkSize++)
{
yield return values.Skip(chunkSize * chunkIndex).Take(chunkSize);
}
if (lastChunkSize > 0)
{
yield return values.Skip(chunkSize * count).Take(lastChunkSize);
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个字符串数组,我想访问该数组中第一个元素的字符:
string[] str= new string[num];
for(int i = 0; i < num; i++)
{
str[i] = Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
在Java中访问字符串数组中第一个元素的字符
str[0].CharAt[0] // 1st character
Run Code Online (Sandbox Code Playgroud)
在 C# 中有没有办法做到这一点?我能看到的唯一功能是使用substring. 在这种情况下,它会产生更多的开销。