Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在C中提取当前可观察的IObservable字段#_C#_Sql_System.reactive_Streaminsight - Fatal编程技术网

C# 如何在C中提取当前可观察的IObservable字段#

C# 如何在C中提取当前可观察的IObservable字段#,c#,sql,system.reactive,streaminsight,C#,Sql,System.reactive,Streaminsight,考虑到我对C#和与IObservable行话相关的行话还不熟悉。 我有一个问题,关于如何从当前数据中提取信息。这是我的c#代码: 有没有一种简单的方法可以从当前表示中提取x、Id和Level的值 谢谢你不就是想做这样的事吗 var query = from le in ToObservableInterval(items, timeSpan, scheduler) select le.ServerName; 神秘性已经回答了这个问题,但是,我认为应该指出的是,当你可以使用Obs

考虑到我对C#和与IObservable行话相关的行话还不熟悉。 我有一个问题,关于如何从当前数据中提取信息。这是我的c#代码:

有没有一种简单的方法可以从当前表示中提取x、Id和Level的值


谢谢

你不就是想做这样的事吗

var query =
    from le in ToObservableInterval(items, timeSpan, scheduler)
    select le.ServerName;

神秘性已经回答了这个问题,但是,我认为应该指出的是,当你可以使用
Observable.Interval
Zip
操作符来完成这项工作时,你可能不需要投入太多精力

下面是一个脚本,您可以使用它来查看,随着时间的推移,它只会从
IEnumerable
中提取值

void Main()
{
    //GetNumbers().Dump();
    var period = TimeSpan.FromSeconds(1);
    var scheduler = Scheduler.Default;
    var source = GetNumbers();
    Observable.Interval(period, scheduler)
            .Zip(source, (a,b)=>b)
            .Dump();

}

// Define other methods and classes here

public IEnumerable<int> GetNumbers()
{
    var i = 0;
    while (i<10)
    {
        DateTimeOffset.Now.ToString("o").Dump();
        yield return i++;
    }
}
然后按照上面的答案消费


由于这种方法很小,你甚至可能会问你是否需要它?

你能解释一下你想解决什么问题吗?似乎您只想观察可枚举流中的值,每个值之间有一个小的延迟,您可以使用:
enumerableSequence.ToObservable().delay(period,scheduler)
var query =
    from le in ToObservableInterval(items, timeSpan, scheduler)
    select le.ServerName;
void Main()
{
    //GetNumbers().Dump();
    var period = TimeSpan.FromSeconds(1);
    var scheduler = Scheduler.Default;
    var source = GetNumbers();
    Observable.Interval(period, scheduler)
            .Zip(source, (a,b)=>b)
            .Dump();

}

// Define other methods and classes here

public IEnumerable<int> GetNumbers()
{
    var i = 0;
    while (i<10)
    {
        DateTimeOffset.Now.ToString("o").Dump();
        yield return i++;
    }
}
private static IObservable<T> ToObservableInterval<T>(
            IEnumerable<T> source, 
            TimeSpan period, 
            System.Reactive.Concurrency.IScheduler scheduler)
    {
        return Observable.Interval(period, scheduler)
                         .Zip(source, (a,b)=>b);
    }