为了测试它的功能,我想将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#写下同样的代码,我将不胜感激。 最佳答案
Python中的字符串格式化操作%s
替换为%
运算符之后传递的元组的相应值。
它在Python中的工作原理
例如:
my_friends = [0, 2, 666, 123132]
print "select uid1 from friends where uid1 in (%s)" % (",".join(my_friends))
会打印这个:
从uid1所在的朋友中选择uid1(0,2666123132)
如何用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的string
format()
方法非常相似(从Python 2.6开始就可用)。