从Xamarin.Android中的Intent中提取所有额外内容的列表,并将其保存在字典中

Dan*_* D. 6 android xamarin.android xamarin

我想列出Intent对象的所有额外(及其值)并将它们保存在字典中.

第一个问题是我没有必要知道所有的钥匙.第二个问题是一些值是字符串,一些是布尔值......等等.我如何在循环中获取值(循环键)并将值保存在C#Xamarin.Android中?

小智 8

LINQ变种

Bundle bundle = intent.Extras;
Dictionary<string, object> dict = bundle.KeySet()
    .ToDictionary<string, string, object>(key => key, key => bundle.Get(key));
Run Code Online (Sandbox Code Playgroud)


Dan*_* D. 2

这是我一段时间后发现的,我将分享它,以便其他人可以节省时间。

//Didactic version
Bundle b = myIntent.Extras; //Where myIntent is of course an Intent
ICollection<string> c = b.KeySet(); //This is the collection of extras
Dictionary<string, string> d = new Dictionary<string, string>(); 

foreach (var key in c)
{
  Object value = b.Get(key);
  d.Add(key, value.ToString());
}   

//Short version
var b = myIntent.Extras; 
var d = new Dictionary<string, string>();

foreach (var key in b.KeySet();)
{
  d.Add(key, b.Get(key).ToString());
}   
Run Code Online (Sandbox Code Playgroud)