小编Dav*_*ton的帖子

使用linq将包含多个值的返回列表存储在字典中

我有一个字典定义如下:Dictionary<string, List<int>>我想过滤,以便它只会在其中List<Int>有超过1个值的条目.

下面的代码正确构建我的字典(感谢Andrew Whitaker)

Dictionary<string, List<int>> fieldNameList = 
    Mapping.Select(m => m.FieldName)
           .Select((c, i) => new { Value = c, Index = i })
           .GroupBy(o => o.Value, o => o.Index)
           .ToDictionary(grp => grp.Key, grp => grp.ToList());
Run Code Online (Sandbox Code Playgroud)

但现在我需要对其进行过滤,以便只有包含多个项目的列表才会包含在最终字典中.

您是否介意解释额外的过滤器,因为我想了解我做错了什么.

我添加.Where(m => m.Value.Count > 1)了现有的查询,认为这可以做到这一点,但它给出了"隐式转换"错误.

c# linq

3
推荐指数
1
解决办法
657
查看次数

使用itertools.permutation,其中r> n

我试图生成一组项目的所有permations,我的R需要大于项目集的大小

这是一个例子:

itertools.permutations ("ABC", 4)
Run Code Online (Sandbox Code Playgroud)

这总是返回0项作为R> N.

我要这个

[A,A,A,A]

[A,A,A,B]

[A,A,B,A]

[A,B,A,A]

...

我怎样才能做到这一点?

python combinatorics

3
推荐指数
1
解决办法
21
查看次数

在 iOS13 上更改状态栏颜色

在 iOS 13 之前,我可以使用以下代码更改状态栏颜色:

        UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
        if (statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
        {
            statusBar.BackgroundColor = UIColor.Clear.FromHex(0x323232);
            statusBar.TintColor = UIColor.White;
            app.StatusBarStyle = UIStatusBarStyle.BlackOpaque;
        }
Run Code Online (Sandbox Code Playgroud)

但是,在 iOS13 上,我收到以下运行时错误

抛出的 Objective-C 异常。名称:NSInternalInconsistencyException 原因:在 UIApplication 上调用了 -statusBar 或 -statusBarWindow 的应用程序:必须更改此代码,因为不再有状态栏或状态栏窗口。改为在窗口场景中使用 statusBarManager 对象。

关于如何更改 iOS13 上的状态栏的任何想法?

编辑:只是指出,这是针对 Xamarin 而不是针对 Swift。澄清重复标记。

c# xamarin.ios xamarin ios13

3
推荐指数
1
解决办法
3781
查看次数

将可选布尔值存储在 NSUserDefaults 中

我试图boolNSUserDefaults所有三个状态都有意义的地方存储一个可选值。

  • nil-> 尚未设置
  • true/ false-> 已明确设置为该值

目前,似乎如果您bool从 中检索 a NSUserDefaults,如果尚未设置,则返回false,这不适用于上述用例。

我不想使用 an ,enum因为它对于我想要实现的目标来说似乎太过分了。

我在这里缺少什么吗?

nsuserdefaults swift

3
推荐指数
1
解决办法
1244
查看次数

Monotouch.Dialog替代Unified DLL

指南的一部分说删除所有具有Monotouch前缀的引用.这包括Monotouch.Dialog许多其他.但它没有说明它取而代之的是什么.

我可以用什么来替换这个引用,以便我可以使用像RadioGroup和其他项目一样的东西GPUImage.

c# xamarin.ios ios xamarin

2
推荐指数
1
解决办法
216
查看次数

使用Xamarin.Auth和Facebook身份验证获取电子邮件地址

我有以下代码尝试连接验证器

        var auth = new OAuth2Authenticator (
            appId,
            "email",
            new Uri ("https://m.facebook.com/dialog/oauth/"),
            new Uri ("http://www.facebook.com/connect/login_success.html"));
Run Code Online (Sandbox Code Playgroud)

当对话框显示时,我可以看到它正在请求查看我的电子邮件的权限.但是如何从服务中获取该电子邮件?

我拨打以下电话获取Facebook ID

var request = new OAuth2Request ("GET", new Uri ("https://graph.facebook.com/me"), null, args.Account);
                request.GetResponseAsync ().ContinueWith (t => {
                    var obj = JsonValue.Parse (t.Result.GetResponseText ());
                    var id = obj ["id"];
                });
Run Code Online (Sandbox Code Playgroud)

但我回复的回复中没有电子邮件.如何获取用户的电子邮件地址?

facebook oauth-2.0 xamarin

2
推荐指数
1
解决办法
1472
查看次数

属性与静态属性

我有一个需要保存到MongoDB集合中的模型.要获得集合名称,我有两个选择.

1)属性

我用自定义属性装饰类,并使用反射来访问其中的值.然后我可以缓存它type以避免将来的查找.

[MongoCollection("Foo")]
public class Foo
{
}
Run Code Online (Sandbox Code Playgroud)

2)静态属性

这里我在类中有一个包含集合名称的静态属性.

public class Foo
{
    public static string CollectionName { get { return "Foo"; } } 
}
Run Code Online (Sandbox Code Playgroud)

我发现我倾向于选择前者,因为它看起来和感觉更干净,但是这里的一些高级开发人员正在利用反射来改头换面.

是否有第一种选择的情况,或者最好选择2?

c# reflection

2
推荐指数
1
解决办法
451
查看次数

我可以在使用 PartitionSender 发送到 EventHubs 时设置 EventData.PartitionKey 吗?

我目前在 Azure 中设置了一个 EventHub 实例。它有5个分区。我想知道,如果有什么PartitionKey总是要成为之间的数字0,并n-1n被分区数目。

我有以下代码:

    private static async Task SendMessagesToEventHub(int numMessagesToSend)
    {
        var sender = eventHubClient.CreatePartitionSender("test1");

        for (var i = 0; i < numMessagesToSend; i++)
        {
            try
            {
                var message = $"Message {i}";
                Console.WriteLine($"Sending message: {message}");
               await  sender.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
            }
            catch (Exception exception)
            {
                Console.WriteLine($"{DateTime.Now} > Exception: {exception.Message}");
            }

            await Task.Delay(10);
        }

        Console.WriteLine($"{numMessagesToSend} messages sent.");
    }
Run Code Online (Sandbox Code Playgroud)

这会引发异常

指定的分区对于 EventHub 分区发送方或接收方无效。它应该在 0 到 4 之间。

在EventHub的文档中,他们是这样说的PartitionKey

EventData 类具有 …

c# azure azure-eventhub

2
推荐指数
1
解决办法
4035
查看次数