小编Ism*_*ani的帖子

从文本文件列表中获取

我知道我可以找到特定类型的文件然后一次性grep它们,即

find . -type f -name "*.log" -exec grep -o "some-pattern" {} \;
Run Code Online (Sandbox Code Playgroud)

但我需要分两步完成.这是因为查找操作很昂贵(有很多文件和子目录要搜索).我想将文件列表保存到文本文件中,然后在需要时反复grep查看此预先计算的文件集上的不同模式.第一部分很简单:

find . -type f -name "*.log" > my-file-list.txt
Run Code Online (Sandbox Code Playgroud)

现在我有一个看起来像这样的文件:

./logs/log1.log
./logs/log2.log
etc
Run Code Online (Sandbox Code Playgroud)

grep是什么样的?我尝试了几种组合,但无法做到正确.

shell grep

7
推荐指数
1
解决办法
7388
查看次数

为什么我不能使用"yield"运算符在IValueConverter中返回一个惰性列表?

假设我有以下课程:

public class Values {
    public string Value1 {get;set;}
    public string Value2 {get;set;}
    public string Value3 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

现在我想使用IValueConverter以特定顺序将此对象的值绑定到GUI组件的ItemsSource:

public class ValuesToListConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        var valuesObj = (Values ) value;
        yield return valuesObj.Value1;
        yield return valuesObj.Value3;
        yield return valuesObj.Value2;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我收到以下错误:

'Convert'的主体不能是迭代器块,因为'object'不是迭代器接口类型.

有没有办法在IValueConverter中懒洋洋地创建这个列表?或者我必须这样做:

return new List<string> { valuesObj.Value1, valuesObj.Value3, valuesObj.Value2 }
Run Code Online (Sandbox Code Playgroud)

c# silverlight

0
推荐指数
1
解决办法
156
查看次数

标签 统计

c# ×1

grep ×1

shell ×1

silverlight ×1