为了测试它的功能,我想将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的stringformat()方法非常相似(从Python 2.6开始就可用)。

08-24 23:08