将Python代码转换为C#等效代码

时间:2012-01-27 16:21:44

标签: c# python facebook-graph-api facebook-fql

我想将本书中的python代码示例重写为C#等价物,以便测试其功能。

代码如下:

q = "select target_id from connection where source_id=me() and target_type='user'"
my_friends = [str(t['target_id']) for t in fql.query(q)]

q = "select uid1, uid2 from friends where uid1 in (%s) and iud2 in (%s)" %
    (",".join(my_friends), ",".join(my_friends),)
mutual_friendships = fql(q)

我不知道的是签名%s以及代码中(%s)的含义。如果有人能用C#编写等效的代码,我真的很感激。

3 个答案:

答案 0 :(得分:4)

Python中的字符串格式化操作

%s将替换为%运算符后传递的元组中的相应值。

它在Python中的工作原理

例如:

my_friends = [0, 2, 666, 123132]
print "select uid1 from friends where uid1 in (%s)" % (",".join(my_friends))

会打印出来:

  

从朋友那里选择uid1,其中uid1在(0,2,666,123132)

如何用C#

替换它

如上所述,您需要使用String.Format()。在这里:http://blog.stevex.net/string-formatting-in-csharp/

string formatString = "select uid1, uid2 from friends where uid1 in ({0}) and iud2 in ({1})"
string q = String.Format(formatString, yourReplacement1, yourReplacement2)

它的工作方式与Python的字符串format()方法非常相似(从Python 2.6开始提供)。

答案 1 :(得分:1)

%s是字符串格式的替换占位符,在.NET中调用{0}...{1}或类似函数时等同于String.Format()等等。

答案 2 :(得分:1)

结帐string.Format

string.Format("select uid1, uid2 from friends where uid1 in ({0}) and iud2 in ({1})",
              <value for {0}>, 
              <value for {1}>);

对于任何字符串值,%s都会转换为{0}...{N}%d等等,所有这些都将在{0}...{N}语法中表示,但在MSDN上定义了几种不同的格式字符串。例如,有Numeric Format StringsDate Format Strings