Linq每次根据我们的枚举器选择5项
我们的列表例如"theList"有100个项目,想要浏览列表并在每次迭代中选择5个项目,
示例代码,我们希望将其更改为我们期望的结果:
theList = dt.AsEnumerable()
.Select(row => new CustItem
{
Name = row.Field<string>("tName"),
Title = row.Field<string>("tTitle"),
}).ToList();
Run Code Online (Sandbox Code Playgroud)
我们应该在一个循环中迭代它并且每次处理所选择的5个项目,或者将它传递给我们的其他方法:
类似的东西:
for (int i=0; i < 20 ; i++)
Run Code Online (Sandbox Code Playgroud)
我想"i"在linq select语句中使用枚举器,并使多重性成为我们新结果集的边界.
我有一个 redis db,它有数千个键,我目前正在运行以下行来获取所有键:
string[] keysArr = keys.Select(key => (string)key).ToArray();
Run Code Online (Sandbox Code Playgroud)
但是因为我有很多钥匙,这需要很长时间。我想限制正在读取的键数。所以我试图运行一个执行命令,我一次得到 100 个键:
var keys = Redis.Connection.GetDatabase(dbNum).Execute("scan", 0, "count", 100);
Run Code Online (Sandbox Code Playgroud)
此命令成功运行该命令,但是无法访问该值,因为它是私有的,并且即使 RedisResult 类为其提供了显式转换,也无法转换它:
public static explicit operator string[] (RedisResult result);
Run Code Online (Sandbox Code Playgroud)
有什么想法可以一次从 redis 获取 x 数量的密钥吗?
谢谢
我想一次只处理 X 个文件以进行以下无限循环。下面的代码一次给我所有文件,如何只获得 X 个文件?
while (true)
{
var files = new DirectoryInfo(@"path")
.GetFiles()
.OrderBy(p => p.LastWriteTimeUtc)
.ToList();
foreach (var f in files)
{
//do some processing
Console.WriteLine(f.Name);
f.Delete();
}
Thread.Sleep(5000);
}
Run Code Online (Sandbox Code Playgroud)